Files
AIRegulation-Deployment/services/compliance-backend/app/core/llm.py

60 lines
2.2 KiB
Python
Raw Normal View History

2026-04-23 09:58:47 +08:00
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. 仅基于提供的参考文献回答不添加不在文献中的信息
2026-04-23 14:50:24 +08:00
2. 每个关键陈述必须标注来源优先使用条款号格式法规名称·第X条
若无条款号则使用法规名称·页码X
2026-04-23 09:58:47 +08:00
3. 如果参考文献不足以回答问题明确说明
4. 使用专业但清晰的语言适合工程师和法务人员阅读
2026-04-23 14:50:24 +08:00
5. 对于数值要求如绝缘电阻值时间限制等精确引用原文
引用格式示例根据道路运输车辆动态监督管理办法第十五条规定道路运输经营者应当"""
2026-04-23 09:58:47 +08:00
COMPLIANCE_CHECK_PROMPT = """你是一位专业的汽车合规审查专家。
请对以下内容进行合规性评估
待审查内容
{content}
相关法规要求
{regulations}
请按以下格式输出
1. 整体风险等级[low/medium/high/critical]
2. 风险分数[0-100]
3. 发现的合规问题逐条列出
- 问题描述
- 违反的具体法规条款
- 严重程度
4. 整改建议具体可操作"""