用途:帮助开发者为指定的中国大模型(如 Qwen、GLM、DeepSeek、Moonshot)编写基于 OpenAI 兼容接口的 LangChain 集成类。
主要能力与流程:先向用户确认模型名称(小写,如 qwen、glm、deepseek)、API Base URL、API Key 环境变量名,未提供时使用合理默认值;并检查项目目录判断包管理器(uv.lock→uv、poetry.lock→poetry、requirements.txt→pip)。随后创建顶层 <models_dir>/ 目录及小写模型子目录,保持顶层 init.py 为空。若模型为 DeepSeek,先检查并安装 langchain-deepseek,再从 reference/deepseek/ 复制 chat_model.py 与 init.py,跳过后续步骤;DeepSeek 官方集成 langchain_deepseek.ChatDeepSeek 的 _get_request_payload 处理内容列表转换与 Azure tool_choice 兼容,但不回写 reasoning_content,参考代码仅子类化并重写该方法注入回写逻辑。其他模型则检查并安装 langchain-openai,复制 template/chat_model.py,创建 init.py,并用 grep 列出占位符后全局替换(如 ChatModel→ChatQwen、PROVIDER_API_KEY→QWEN_API_KEY、PROVIDER_API_BASE_URL→https://dashscope.aliyuncs.com/compatible-mode/v1、chat-provider→chat-qwen、provider-name→dashscope、Provider→Qwen)。
可选配置:使用 langchain-model-profiles 下载模型档案,命令为 langchain-profiles refresh --provider <provider_name> --data-dir ./<models_dir>/<model_name>/data,成功后生成 data/_profiles.py 供 _get_default_model_profile 使用;多次尝试仍找不到对应 provider 则跳过。
测试与限制:完成后必须编写集成测试,详见 reference/integration-tests.md;运行前须提醒用户自行编辑 .env 填写 API Key 等环境变量。严禁读取、写入或访问 .env、.env.local、credentials.json 等可能含密钥的配置文件,凭据一律由用户自行填写。测试中可能遇到包无法导入、异步测试模式等常见问题,可参考该文档末尾的常见问题部分。