web-rag / app.py
Hbin-Zhuang
:docs: memo: 文案修改
a97599a
#!/usr/bin/env python3
"""
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)
# 确保默认模型为 2.5 预览版
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
# 创建主UI控制器
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()}")