refactor: 清理不需要的代码文件,添加.gitignore,优化项目结构

This commit is contained in:
赵杰 Jie Zhao (雄狮汽车科技)
2025-09-16 17:05:50 +01:00
parent 9451945e08
commit 9ca36042e3
65 changed files with 3370 additions and 10809 deletions

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
实时对话管理器
@@ -16,6 +16,7 @@ from ..core.llm_client import QwenClient
from ..knowledge_base.knowledge_manager import KnowledgeManager
from ..core.database import db_manager
from ..core.models import Conversation, WorkOrder
from ..vehicle.vehicle_data_manager import VehicleDataManager
logger = logging.getLogger(__name__)
@@ -36,6 +37,7 @@ class RealtimeChatManager:
def __init__(self):
self.llm_client = QwenClient()
self.knowledge_manager = KnowledgeManager()
self.vehicle_manager = VehicleDataManager()
self.active_sessions = {} # 存储活跃的对话会话
self.message_history = {} # 存储消息历史
@@ -81,6 +83,27 @@ class RealtimeChatManager:
# 搜索相关知识
knowledge_results = self._search_knowledge(user_message)
# 识别VIN并查询实时数据注入上下文
vin = self._extract_vin(user_message)
realtime_snippets = []
if vin:
latest = self.vehicle_manager.get_latest_vehicle_data_by_vin(vin)
if latest:
# 组织为知识片段参与提示
realtime_snippets.append({
"question": f"VIN {vin} 的最新实时数据",
"answer": json.dumps(latest, ensure_ascii=False),
"similarity_score": 1.0,
"source": "vehicle_realtime"
})
# 也放入上下文,便于模型参考
session["context"].append({
"role": "system",
"content": f"车辆VIN {vin} 最新数据: {json.dumps(latest, ensure_ascii=False)}"
})
if realtime_snippets:
knowledge_results = (realtime_snippets + knowledge_results)[:5]
# 生成回复
assistant_response = self._generate_response(
@@ -216,6 +239,19 @@ class RealtimeChatManager:
"""
return prompt
def _extract_vin(self, text: str) -> Optional[str]:
"""从文本中提取VIN17位I/O/Q不使用常见校验"""
try:
import re
# 允许大小写字母和数字,排除 I,O,Q长度17
pattern = r"\b(?!.*[IOQ])[A-HJ-NPR-Z0-9]{17}\b"
match = re.search(pattern, text.upper())
if match:
return match.group(0)
return None
except Exception:
return None
def _calculate_confidence(self, knowledge_results: List[Dict], response_content: str) -> float:
"""计算回复置信度"""