Travel_Assistant / modules /travel_assistant.py
Eliot0110's picture
improve: 优化模型调用并对各组件升级
af60cba
raw
history blame
1.92 kB
# 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