################################################################################ # DEPRECATED CONFIGURATION FILE: config/llm_config.py ################################################################################ # -*- coding: utf-8 -*- """ LLM配置文件 - 千问模型配置 """ from src.agent.llm_client import LLMConfig # 千问模型配置 QWEN_CONFIG = LLMConfig( provider="qwen", api_key="sk-c0dbefa1718d46eaa897199135066f00", # 请替换为您的千问API密钥 base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", model="qwen-plus-latest", # 可选: qwen-turbo, qwen-plus, qwen-max temperature=0.7, max_tokens=2000 ) # 其他模型配置示例 OPENAI_CONFIG = LLMConfig( provider="openai", api_key="sk-your-openai-api-key-here", model="gpt-3.5-turbo", temperature=0.7, max_tokens=2000 ) ANTHROPIC_CONFIG = LLMConfig( provider="anthropic", api_key="sk-ant-your-anthropic-api-key-here", model="claude-3-sonnet-20240229", temperature=0.7, max_tokens=2000 ) # 默认使用千问模型 DEFAULT_CONFIG = QWEN_CONFIG def get_default_llm_config() -> LLMConfig: """ 获取默认的LLM配置 优先从统一配置管理器获取,如果失败则使用本地配置 """ try: from src.config.unified_config import get_config config = get_config() llm_dict = config.get_llm_config() # 创建LLMConfig对象 return LLMConfig( provider=llm_dict.get("provider", "qwen"), api_key=llm_dict.get("api_key", ""), base_url=llm_dict.get("base_url", "https://dashscope.aliyuncs.com/compatible-mode/v1"), model=llm_dict.get("model", "qwen-plus-latest"), temperature=llm_dict.get("temperature", 0.7), max_tokens=llm_dict.get("max_tokens", 2000) ) except Exception: # 如果统一配置不可用,使用本地配置 return DEFAULT_CONFIG ################################################################################ # DEPRECATED CONFIGURATION FILE: config/integrations_config.json ################################################################################ { "feishu": { "app_id": "cli_a8b50ec0eed1500d", "app_secret": "ccxkE7ZCFQZcwkkM1rLy0ccZRXYsT2xK", "app_token": "XXnEbiCmEaMblSs6FDJcFCqsnIg", "table_id": "tblnl3vJPpgMTSiP", "last_updated": "2025-09-19T18:40:55.291113", "status": "active" }, "system": { "sync_limit": 10, "ai_suggestions_enabled": true, "auto_sync_interval": 0, "last_sync_time": null } } ################################################################################ # DEPRECATED CONFIGURATION FILE: config/ai_accuracy_config.py ################################################################################ #!/usr/bin/env python # -*- coding: utf-8 -*- """ AI准确率配置 管理AI建议的准确率阈值和相关配置 """ from dataclasses import dataclass from typing import Dict, Any @dataclass class AIAccuracyConfig: """AI准确率配置类""" # 相似度阈值配置 auto_approve_threshold: float = 0.95 # 自动审批阈值(≥95%) use_human_resolution_threshold: float = 0.90 # 使用人工描述阈值(<90%) manual_review_threshold: float = 0.80 # 人工审核阈值(≥80%) # 置信度配置 ai_suggestion_confidence: float = 0.95 # AI建议默认置信度 human_resolution_confidence: float = 0.90 # 人工描述置信度 # 入库策略配置 prefer_human_when_low_accuracy: bool = True # 当AI准确率低时优先使用人工描述 enable_auto_approval: bool = True # 是否启用自动审批 enable_human_fallback: bool = True # 是否启用人工描述回退 def get_threshold_explanation(self, similarity: float) -> str: """获取相似度阈值的解释""" if similarity >= self.auto_approve_threshold: return f"相似度≥{self.auto_approve_threshold*100:.0f}%,自动审批使用AI建议" elif similarity >= self.manual_review_threshold: return f"相似度≥{self.manual_review_threshold*100:.0f}%,建议人工审核" elif similarity >= self.use_human_resolution_threshold: return f"相似度<{self.use_human_resolution_threshold*100:.0f}%,建议使用人工描述" else: return f"相似度<{self.use_human_resolution_threshold*100:.0f}%,优先使用人工描述" def should_use_human_resolution(self, similarity: float) -> bool: """判断是否应该使用人工描述""" return similarity < self.use_human_resolution_threshold def should_auto_approve(self, similarity: float) -> bool: """判断是否应该自动审批""" return similarity >= self.auto_approve_threshold and self.enable_auto_approval def get_confidence_score(self, similarity: float, use_human: bool = False) -> float: """获取置信度分数""" if use_human: return self.human_resolution_confidence else: return max(similarity, self.ai_suggestion_confidence) def to_dict(self) -> Dict[str, Any]: """转换为字典格式""" return { "auto_approve_threshold": self.auto_approve_threshold, "use_human_resolution_threshold": self.use_human_resolution_threshold, "manual_review_threshold": self.manual_review_threshold, "ai_suggestion_confidence": self.ai_suggestion_confidence, "human_resolution_confidence": self.human_resolution_confidence, "prefer_human_when_low_accuracy": self.prefer_human_when_low_accuracy, "enable_auto_approval": self.enable_auto_approval, "enable_human_fallback": self.enable_human_fallback } @classmethod def from_dict(cls, data: Dict[str, Any]) -> 'AIAccuracyConfig': """从字典创建配置""" return cls(**data) # 默认配置实例 DEFAULT_CONFIG = AIAccuracyConfig() # 配置预设 PRESETS = { "conservative": AIAccuracyConfig( auto_approve_threshold=0.98, use_human_resolution_threshold=0.85, manual_review_threshold=0.90, human_resolution_confidence=0.95 ), "balanced": AIAccuracyConfig( auto_approve_threshold=0.95, use_human_resolution_threshold=0.90, manual_review_threshold=0.80, human_resolution_confidence=0.90 ), "aggressive": AIAccuracyConfig( auto_approve_threshold=0.90, use_human_resolution_threshold=0.80, manual_review_threshold=0.70, human_resolution_confidence=0.85 ) } def get_accuracy_config(preset: str = "balanced") -> AIAccuracyConfig: """获取准确率配置""" return PRESETS.get(preset, DEFAULT_CONFIG) def update_accuracy_config(config: AIAccuracyConfig) -> bool: """更新准确率配置(可以保存到文件或数据库)""" try: # 这里可以实现配置的持久化存储 # 例如保存到配置文件或数据库 return True except Exception: return False ################################################################################ # DEPRECATED CONFIGURATION FILE: config/field_mapping_config.json ################################################################################ { "field_mapping": { "TR Number": "order_id", "TR Description": "description", "Type of problem": "category", "TR Level": "priority", "TR Status": "status", "Source": "source", "Date creation": "created_at", "处理过程": "resolution", "TR tracking": "resolution", "Created by": "created_by", "Module(模块)": "module", "Wilfulness(责任人)": "wilfulness", "Date of close TR": "date_of_close", "Vehicle Type01": "vehicle_type", "VIN|sim": "vin_sim", "App remote control version": "app_remote_control_version", "HMI SW": "hmi_sw", "父记录": "parent_record", "Has it been updated on the same day": "has_updated_same_day", "Operating time": "operating_time", "AI建议": "ai_suggestion", "Issue Start Time": "updated_at", "Wilfulness(责任人�?": "wilfulness", "父�?�录": "parent_record", "AI建�??": "ai_suggestion" }, "field_aliases": { "order_id": [ "TR Number", "TR编号", "工单号", "Order ID", "Ticket ID", "工单编号", "新字段1", "新字段" ], "description": [ "TR Description", "TR描述", "描述", "Description", "问题描述", "详细描述" ], "category": [ "Type of problem", "问题类型", "Category", "分类", "Problem Type", "问题分类" ], "priority": [ "TR Level", "优先级", "Priority", "Level", "紧急程度", "重要程度" ], "status": [ "TR Status", "状态", "Status", "工单状态", "处理状态" ], "source": [ "Source", "来源", "Source Type", "来源类型", "提交来源" ], "created_at": [ "Date creation", "创建日期", "Created At", "Creation Date", "创建时间" ], "solution": [ "处理过程", "Solution", "解决方案", "Process", "处理方案" ], "resolution": [ "TR tracking", "Resolution", "解决结果", "跟踪", "处理结果" ], "created_by": [ "Created by", "创建人", "Creator", "Created By", "提交人" ], "vehicle_type": [ "Vehicle Type01", "车型", "Vehicle Type", "车辆类型", "车款" ], "vin_sim": [ "VIN|sim", "VIN", "车架号", "SIM", "VIN/SIM", "车辆识别号" ], "module": [ "Module(模块)", "模块", "Module", "功能模块" ], "wilfulness": [ "Wilfulness(责任人)", "责任人", "负责人", "Assignee" ], "date_of_close": [ "Date of close TR", "关闭日期", "Close Date", "完成日期" ], "app_remote_control_version": [ "App remote control version", "应用远程控制版本", "App Version", "应用版本" ], "hmi_sw": [ "HMI SW", "HMI软件版本", "HMI Software", "人机界面软件" ], "parent_record": [ "父记录", "Parent Record", "上级记录", "关联记录" ], "has_updated_same_day": [ "Has it been updated on the same day", "是否同日更新", "Same Day Update", "当日更新" ], "operating_time": [ "Operating time", "操作时间", "Operation Time", "运行时间" ], "ai_suggestion": [ "AI建议", "AI Suggestion", "AI建议", "智能建议" ], "updated_at": [ "Issue Start Time", "问题开始时间", "Start Time", "更新时间" ] }, "field_patterns": { "order_id": [ ".*number.*", ".*id.*", ".*编号.*", ".*ticket.*", ".*新.*" ], "description": [ ".*description.*", ".*描述.*", ".*detail.*", ".*内容.*" ], "category": [ ".*type.*", ".*category.*", ".*分类.*", ".*类型.*", ".*problem.*" ], "priority": [ ".*level.*", ".*priority.*", ".*优先级.*", ".*urgent.*" ], "status": [ ".*status.*", ".*状态.*", ".*state.*" ], "source": [ ".*source.*", ".*来源.*", ".*origin.*" ], "created_at": [ ".*creation.*", ".*created.*", ".*创建.*", ".*date.*" ], "solution": [ ".*solution.*", ".*处理.*", ".*解决.*", ".*process.*" ], "resolution": [ ".*resolution.*", ".*tracking.*", ".*跟踪.*", ".*result.*" ], "created_by": [ ".*created.*by.*", ".*creator.*", ".*创建人.*", ".*author.*" ], "vehicle_type": [ ".*vehicle.*type.*", ".*车型.*", ".*车辆.*", ".*car.*" ], "vin_sim": [ ".*vin.*", ".*sim.*", ".*车架.*", ".*识别.*" ], "module": [ ".*module.*", ".*模块.*", ".*功能.*" ], "wilfulness": [ ".*wilfulness.*", ".*责任人.*", ".*负责人.*", ".*assignee.*" ], "date_of_close": [ ".*close.*", ".*关闭.*", ".*完成.*", ".*finish.*" ], "app_remote_control_version": [ ".*app.*version.*", ".*应用.*版本.*", ".*remote.*control.*" ], "hmi_sw": [ ".*hmi.*", ".*软件.*", ".*software.*" ], "parent_record": [ ".*parent.*", ".*父.*", ".*上级.*", ".*关联.*" ], "has_updated_same_day": [ ".*same.*day.*", ".*同日.*", ".*当日.*", ".*updated.*same.*" ], "operating_time": [ ".*operating.*time.*", ".*操作.*时间.*", ".*运行.*时间.*" ], "ai_suggestion": [ ".*ai.*suggestion.*", ".*ai.*建议.*", ".*智能.*建议.*" ], "updated_at": [ ".*start.*time.*", ".*开始.*时间.*", ".*updated.*at.*", ".*更新时间.*" ] }, "field_priorities": { "order_id": 3, "description": 3, "category": 3, "priority": 3, "status": 3, "created_at": 3, "source": 3, "solution": 3, "resolution": 3, "created_by": 3, "vehicle_type": 3, "vin_sim": 3, "module": 3, "wilfulness": 3, "date_of_close": 3, "app_remote_control_version": 3, "hmi_sw": 3, "parent_record": 3, "has_updated_same_day": 3, "operating_time": 3, "ai_suggestion": 3, "updated_at": 3 }, "auto_mapping_enabled": true, "similarity_threshold": 0.6 } ################################################################################ # DEPRECATED CONFIGURATION FILE: config/unified_config.json ################################################################################ { "database": { "url": "mysql+pymysql://tsp_assistant:password@jeason.online/tsp_assistant?charset=utf8mb4", "pool_size": 10, "max_overflow": 20, "pool_timeout": 30, "pool_recycle": 3600 }, "llm": { "provider": "qwen", "api_key": "sk-c0dbefa1718d46eaa897199135066f00", "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", "model": "qwen-plus-latest", "temperature": 0.7, "max_tokens": 2000, "timeout": 30 }, "server": { "host": "0.0.0.0", "port": 5000, "websocket_port": 8765, "debug": false, "log_level": "INFO" }, "feishu": { "app_id": "", "app_secret": "", "app_token": "", "table_id": "", "status": "active", "sync_limit": 10, "auto_sync_interval": 0 }, "ai_accuracy": { "auto_approve_threshold": 0.95, "use_human_resolution_threshold": 0.9, "manual_review_threshold": 0.8, "ai_suggestion_confidence": 0.95, "human_resolution_confidence": 0.9, "prefer_human_when_low_accuracy": true, "enable_auto_approval": true, "enable_human_fallback": true }, "system": { "backup_enabled": true, "backup_interval": 24, "max_backup_files": 7, "cache_enabled": true, "cache_ttl": 3600, "monitoring_enabled": true } } ################################################################################ # DEPRECATED CONFIGURATION FILE: src/config/config.py ################################################################################ import os from typing import Dict, Any class Config: """系统配置类""" # 阿里云千问API配置 ALIBABA_API_KEY = "sk-c0dbefa1718d46eaa897199135066f00" ALIBABA_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1" ALIBABA_MODEL_NAME = "qwen-plus-latest" # 数据库配置 DATABASE_URL = "mysql+pymysql://tsp_assistant:123456@jeason.online/tsp_assistant?charset=utf8mb4" # DATABASE_URL = "sqlite:///local_test.db" # 本地测试数据库 # 知识库配置 KNOWLEDGE_BASE_PATH = "data/knowledge_base" VECTOR_DB_PATH = "data/vector_db" # 对话配置 MAX_HISTORY_LENGTH = 10 RESPONSE_TIMEOUT = 30 # 分析配置 ANALYTICS_UPDATE_INTERVAL = 3600 # 1小时 ALERT_THRESHOLD = 0.8 # 预警阈值 # 日志配置 LOG_LEVEL = "INFO" LOG_FILE = "logs/tsp_assistant.log" # 系统监控配置 SYSTEM_MONITORING = True # 是否启用系统监控 MONITORING_INTERVAL = 60 # 监控间隔(秒) @classmethod def get_api_config(cls) -> Dict[str, Any]: """获取API配置""" return { "api_key": cls.ALIBABA_API_KEY, "base_url": cls.ALIBABA_BASE_URL, "model_name": cls.ALIBABA_MODEL_NAME } @classmethod def get_database_config(cls) -> Dict[str, Any]: """获取数据库配置""" return { "url": cls.DATABASE_URL, "echo": False } @classmethod def get_knowledge_config(cls) -> Dict[str, Any]: """获取知识库配置""" return { "base_path": cls.KNOWLEDGE_BASE_PATH, "vector_db_path": cls.VECTOR_DB_PATH } @classmethod def get_config(cls) -> Dict[str, Any]: """获取完整配置""" return { "system_monitoring": cls.SYSTEM_MONITORING, "monitoring_interval": cls.MONITORING_INTERVAL, "log_level": cls.LOG_LEVEL, "log_file": cls.LOG_FILE, "analytics_update_interval": cls.ANALYTICS_UPDATE_INTERVAL, "alert_threshold": cls.ALERT_THRESHOLD }