直接答案
通过 `langchain-openai` 的标准参数连接 CodeNodex,并把依赖安装、密钥管理、最小调用和失败重试放进同一条验证链。
这篇内容解决什么问题
解决 LangChain 的 `ChatOpenAI` 应如何设置自定义 Base URL、API Key 和模型,同时避免把 SDK 集成误写成 CodeNodex CLI 自动配置。
隔离环境并安装 langchain-openai
LangChain 的 OpenAI 集成位于独立的 langchain-openai 包。CodeNodex CLI 不负责修改 Python 项目依赖,也没有 langchain 客户端 ID。
使用虚拟环境固定项目边界,并让依赖版本进入项目自己的锁文件。教程命令只安装官方集成包,不要求修改 CodeNodex 站点依赖。
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade langchain-openai显式传入 Key、Base URL 和模型
把 API Key 放入进程环境,不写进源码。base_url 使用 https://token.codenodex.com/v1,model 使用当前 Key 可见的真实模型 ID。
生产调用应设置超时和有限重试。无限重试会放大上游故障,并让应用请求堆积。
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="YOUR_MODEL_ID",
api_key=os.environ["CODENODEX_API_KEY"],
base_url="https://token.codenodex.com/v1",
timeout=60,
max_retries=2,
)执行最小调用并检查返回结构
先使用字符串输入执行一次 invoke,打印文本结果和响应元数据。不要一开始就叠加 Agent、Memory、Retriever 或输出解析器。
最小调用成功后,再逐层加入 PromptTemplate 和链式组件;每增加一层都保留可独立运行的回归样例。
response = llm.invoke("用一句话说明可重复构建的价值")
print(response.content)
print(response.response_metadata)补齐生产超时、重试和可观测性
记录请求耗时、模型 ID、HTTP 状态码和应用侧 request ID,但绝不能记录完整 API Key 或用户敏感输入。对 429 和临时 5xx 使用带抖动的有限退避。
LangChain callback 或 tracing 会把提示词发送到额外服务。启用前先评估数据边界;它不是验证 CodeNodex 接入所必需的组件。
- 进程启动时只检查环境变量是否存在,不打印其值。
- 为请求设置明确超时,并限制总重试时间。
- 按状态码区分认证、限流、模型与网络错误。
- 使用脱敏后的模型和耗时指标建立告警。
区分 SDK、模型和链式组件错误
401 检查环境变量中的 Key;404 检查 base_url 与模型 ID;429 检查余额和并发;连接错误检查代理、DNS 与证书。
如果直接使用 OpenAI Python SDK 正常而 ChatOpenAI 失败,建立最小复现并检查 langchain-openai 版本和参数。若仅在复杂链中失败,则继续排查提示模板、输出解析或工具定义。
官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法