用途:该技能面向 AI/ML 服务开发,给出以 FastAPI 为服务框架、LangChain 为编排层、OpenAI 与 Anthropic 为模型提供方、ONNX 为部署格式的工程模式,并包含模型训练管线示例。
主要能力:
- FastAPI 服务骨架:使用 lifespan 初始化 LLMService,通过 api_router 挂载 /api/v1 路由。
- LLM 服务抽象:BaseLLM 抽象类,OpenAILLM 与 AnthropicLLM 分别封装 AsyncOpenAI 与 AsyncAnthropic,LLMService 按 provider 缓存实例并统一 generate 接口。
- LangChain SQL Agent:create_openai_tools_agent 构建只读 SQL 查询代理,系统提示限定仅生成 SELECT,AgentExecutor 设置 max_iterations=3。
- SQL 工具:SQLQueryTool 校验查询必须以 SELECT 开头,并拦截 INSERT、UPDATE、DELETE、DROP、ALTER 等关键字,结果最多返回 50 行。
- 聊天接口:POST /chat 接收 ChatRequest,返回 ChatResponse,包含 conversation_id 与 processing_time_ms。
- ONNX 导出:使用 optimum.onnxruntime 的 ORTModelForSequenceClassification 导出,并可选 ORTQuantizer 与 AutoQuantizationConfig.avx512_vnni 量化。
- 训练管线:IntentClassifierTrainer 基于 transformers 的 Trainer,加载 JSON 数据集,tokenize 后训练意图分类模型并保存。
- 配置与模型:pydantic-settings 读取 .env,Pydantic 定义 ChatRequest/ChatResponse。
使用方式:依赖 Python >=3.11,安装 fastapi、uvicorn、pydantic、openai、anthropic、langchain、sentence-transformers、torch、transformers、onnx、onnxruntime、structlog 等指定版本;按示例目录组织 src/ai_service 与 tests;通过环境变量提供 API Key 与数据库 URL。
适用场景:需要快速搭建 AI 服务、LLM 多提供方切换、只读数据库问答代理、文本分类模型训练与 ONNX 部署的项目。
限制:资料未提供实际部署、性能、收费与平台支持信息;SQL 工具仅允许 SELECT,训练与导出示例未给出完整数据集格式与评估指标。