1. 概述

我们知道,使用 langchain 中的 ChatOpenAI 可以很方便的调用模型

common-model.ts
1
import { ChatOpenAI } from '@langchain/openai'
2
3
const model = new ChatOpenAI({
4
apiKey: process.env.LLM_API_KEY,
5
model: 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推理模型的思考过程也可能消耗预算
topPnucleus sampling 截断范围top_p通常不要和 temperature 同时调节
frequencyPenalty降低重复词出现概率frequency_penalty不是所有模型支持
presencePenalty鼓励引入新主题presence_penalty不是所有模型支持
stop命中停止序列后结束stopProvider 可能限制数量或长度
seed尝试让采样更稳定seed只是一种尽力而为,不保证绝对一致
timeout单次请求超时时间SDK 请求选项LangChain 中以毫秒传入
maxRetries网络错误时的重试次数LangChain / SDK 重试重试不应掩盖鉴权或参数错误
streamUsage是否在流式末尾请求用量块stream_options.include_usage不支持该字段的中转站应关闭
modelKwargs透传 Provider 专属字段请求体中的额外字段必须查服务商文档,不能随意猜字段
订阅后可阅读剩余内容
AI 电子伴侣企业级项目实战
已发布239计划发布120目标已完成199%