Spaces:
Sleeping
Sleeping
File size: 1,915 Bytes
af60cba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# 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
|