|
|
|
""" |
|
Web RAG 系统 v4.0 (专业版) |
|
基于 Google Gemini 的智能文档问答系统 |
|
""" |
|
|
|
import traceback |
|
|
|
|
|
try: |
|
from src.infrastructure import ( |
|
initialize_infrastructure, |
|
get_config, |
|
get_logger |
|
) |
|
|
|
|
|
initialize_infrastructure() |
|
|
|
|
|
config_service = get_config() |
|
logger = get_logger() |
|
|
|
logger.info("Web RAG 系统启动", extra={ |
|
"environment": config_service.get_environment().value, |
|
"version": "v4.0" |
|
}) |
|
|
|
|
|
from src.application.services.document_service import DocumentService |
|
from src.application.services.chat_service import ChatService |
|
from src.application.services.model_service import ModelService |
|
from src.shared.state.application_state import ApplicationState |
|
|
|
|
|
application_state = ApplicationState() |
|
|
|
|
|
model_service = ModelService(config_service, logger) |
|
document_service = DocumentService( |
|
model_service=model_service, |
|
config_service=config_service, |
|
logger_service=logger |
|
) |
|
chat_service = ChatService(model_service) |
|
|
|
|
|
target_default = "gemini-2.5-flash-preview-05-20" |
|
if model_service.get_current_model() != target_default: |
|
model_service.switch_model(target_default) |
|
|
|
logger.info("Web RAG 系统初始化完成") |
|
|
|
|
|
from src.presentation.controllers.main_ui_controller import MainUIController |
|
|
|
|
|
main_controller = MainUIController( |
|
document_service, |
|
chat_service, |
|
model_service, |
|
config_service, |
|
logger |
|
) |
|
|
|
|
|
demo = main_controller.build_interface() |
|
|
|
except Exception as e: |
|
error_msg = f"系统初始化失败: {e}" |
|
error_details = traceback.format_exc() |
|
|
|
print(f"❌ {error_msg}") |
|
print(f"错误详情: {error_details}") |
|
|
|
|
|
import gradio as gr |
|
with gr.Blocks(title="Web RAG 系统 - 系统错误") as demo: |
|
gr.Markdown("# ❌ 系统错误") |
|
gr.Markdown(f"**错误信息**: {str(e)}") |
|
gr.Markdown("**建议**: 检查依赖配置和环境设置") |
|
|
|
|
|
if __name__ == "__main__": |
|
try: |
|
main_controller.launch() |
|
|
|
except Exception as e: |
|
print(f"❌ 启动失败: {e}") |
|
print(f"错误详情: {traceback.format_exc()}") |