Spaces:
Running
Running
| # 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 | |