# modules/travel_assistant.py from .config_loader import ConfigLoader from .ai_model import AIModel from .knowledge_base import KnowledgeBase from .info_extractor import InfoExtractor from .session_manager import SessionManager from .response_generator import ResponseGenerator from utils.logger import log class TravelAssistant: def __init__(self): # 依赖注入:在这里实例化所有需要的模块 log.info("开始初始化 Travel Assistant 核心模块...") self.config = ConfigLoader() self.kb = KnowledgeBase() self.ai_model = AIModel() self.session_manager = SessionManager() self.info_extractor = InfoExtractor(self.config) self.response_generator = ResponseGenerator(self.ai_model, self.kb) log.info("✅ Travel Assistant 核心模块全部初始化完成!") def chat(self, message: str, session_id: str, history: list): # 1. 获取或创建会话 session_state = self.session_manager.get_or_create_session(session_id) current_session_id = session_state['session_id'] # 2. 从用户输入中提取信息 extracted_info = self.info_extractor.extract(message) # 3. 更新会话状态 if extracted_info: self.session_manager.update_session(current_session_id, extracted_info) # 重新获取更新后的状态 session_state = self.session_manager.get_or_create_session(current_session_id) # 4. 生成回复 bot_response = self.response_generator.generate(message, session_state) # 5. 格式化状态信息用于前端显示 status_info = self.session_manager.format_session_info(session_state) # 6. 更新对话历史 new_history = history + [[message, bot_response]] return bot_response, current_session_id, status_info, new_history