from langchain_openai import ChatOpenAI from tenacity import retry, stop_after_attempt, wait_exponential from .config import settings def get_llm(temperature: float = 0.1) -> ChatOpenAI: """获取 LLM 客户端(DeepSeek 或 Qwen,均兼容 OpenAI API)""" if settings.llm_provider == "deepseek": return ChatOpenAI( model=settings.deepseek_model, api_key=settings.deepseek_api_key, base_url="https://api.deepseek.com/v1", temperature=temperature, max_retries=3, timeout=120, ) elif settings.llm_provider == "qwen": return ChatOpenAI( model=settings.qwen_model, api_key=settings.dashscope_api_key, base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", temperature=temperature, max_retries=3, timeout=120, ) raise ValueError(f"不支持的 LLM 提供商:{settings.llm_provider}") RAG_SYSTEM_PROMPT = """你是一位专业的汽车行业合规专家,具备深厚的法规知识(GB标准、UN-ECE、ISO 45001、IATF 16949等)。 回答规则: 1. 仅基于提供的参考文献回答,不添加不在文献中的信息 2. 每个关键陈述必须标注来源(格式:[来源:文件名,第X页]) 3. 如果参考文献不足以回答问题,明确说明 4. 使用专业但清晰的语言,适合工程师和法务人员阅读 5. 对于数值要求(如绝缘电阻值、时间限制等),精确引用原文""" COMPLIANCE_CHECK_PROMPT = """你是一位专业的汽车合规审查专家。 请对以下内容进行合规性评估: 【待审查内容】 {content} 【相关法规要求】 {regulations} 请按以下格式输出: 1. 整体风险等级:[low/medium/high/critical] 2. 风险分数:[0-100] 3. 发现的合规问题(逐条列出): - 问题描述 - 违反的具体法规条款 - 严重程度 4. 整改建议(具体可操作)"""