1. 概述
我们知道,使用 langchain 中的 ChatOpenAI 可以很方便的调用模型
common-model.ts
1import { ChatOpenAI } from '@langchain/openai'23const model = new ChatOpenAI({4apiKey: process.env.LLM_API_KEY,5model: process.env.LLM_MODEL ?? 'deepseek-v4-flash',6})
但其中有很多参数我们还不知道是什么意思,以及如何使用。这篇文章,我们将逐个介绍这些参数。
DeepSeek、OpenAI 和许多中转站都提供 OpenAI 兼容接口,所以 LangChain 可以统一使用 ChatOpenAI。它的作用不是把所有 Provider 变成完全一样,而是提供一套稳定的模型调用接口,再把参数转换为对应协议中的字段。
下面这些参数最常见:
| LangChain 参数 | 作用 | 常见对应字段 | 使用注意 |
|---|---|---|---|
model | 指定模型名称 | model | 必填;名称由 Provider 决定 |
apiKey | 请求鉴权 | Authorization 请求头 | 使用环境变量,不要写进仓库 |
configuration.baseURL | 指定接口根地址 | SDK 请求地址 | 是否包含 /v1 要以服务商文档为准 |
temperature | 控制采样随机性 | temperature | 越高越发散;推理模型可能不支持 |
maxTokens | 限制输出预算 | Completions 的 max_tokens 或 Responses 的 max_output_tokens | 推理模型的思考过程也可能消耗预算 |
topP | nucleus sampling 截断范围 | top_p | 通常不要和 temperature 同时调节 |
frequencyPenalty | 降低重复词出现概率 | frequency_penalty | 不是所有模型支持 |
presencePenalty | 鼓励引入新主题 | presence_penalty | 不是所有模型支持 |
stop | 命中停止序列后结束 | stop | Provider 可能限制数量或长度 |
seed | 尝试让采样更稳定 | seed | 只是一种尽力而为,不保证绝对一致 |
timeout | 单次请求超时时间 | SDK 请求选项 | LangChain 中以毫秒传入 |
maxRetries | 网络错误时的重试次数 | LangChain / SDK 重试 | 重试不应掩盖鉴权或参数错误 |
streamUsage | 是否在流式末尾请求用量块 | stream_options.include_usage | 不支持该字段的中转站应关闭 |
modelKwargs | 透传 Provider 专属字段 | 请求体中的额外字段 | 必须查服务商文档,不能随意猜字段 |
订阅后可阅读剩余内容
AI 电子伴侣企业级项目实战
已发布239节计划发布120节目标已完成199%