现在位置: 首页 > LangChain 教程 > 正文

LangChain Chat Model API

本文档列出 init_chat_model() 和 BaseChatModel 的完整 API 参考。


init_chat_model() 完整参数

参数类型默认值说明
modelstr 或 None模型名,格式为 provider:model_name。传 None 创建可配置模型
model_providerstr 或 NoneNone单独指定提供商。当 model 无法自动推断时使用
configurable_fields"any" 或 list 或 NoneNone可运行时修改的字段。None=固定模型,"any"=全部可配
config_prefixstr 或 NoneNone多模型场景下的配置键前缀
temperaturefloat因模型而异控制随机性,0~2。0=确定,2=最大创造性
max_tokensint模型上限输出最大 Token 数
timeoutint/float 或 NoneNone请求超时秒数
max_retriesint因模型而异失败重试次数
base_urlstr 或 None官方地址自定义 API 端点
rate_limiterBaseRateLimiter速率限制器
top_pfloat 或 None因模型而异核采样参数,0~1
stoplist[str]停止序列

BaseChatModel 方法

方法说明返回值
invoke(input, config=None, **kwargs)同步调用模型AIMessage
ainvoke(input, config=None, **kwargs)异步调用模型AIMessage
stream(input, config=None, **kwargs)同步流式调用Iterator[AIMessageChunk]
astream(input, config=None, **kwargs)异步流式调用AsyncIterator[AIMessageChunk]
batch(inputs, config=None, **kwargs)批量调用list[AIMessage]
bind_tools(tools, **kwargs)绑定工具列表Runnable[input, AIMessage]
with_structured_output(schema, **kwargs)绑定结构化输出 SchemaRunnable[input, BaseModel/dict]
bind(**kwargs)绑定运行时参数Runnable

支持的模型提供商速查

provider 名安装包示例 model 值
openailangchain-deepseekdeepseek:deepseek-v4-flash
anthropiclangchain-anthropicanthropic:claude-sonnet-4-5-20250929
deepseeklangchain-deepseekdeepseek:deepseek-chat
google_genailangchain-google-genaigoogle_genai:gemini-2.5-flash
ollamalangchain-ollamaollama:llama3.2
groqlangchain-groqgroq:llama-3.3-70b
xailangchain-xaixai:grok-3
mistralailangchain-mistralaimistralai:mistral-large
openrouterlangchain-openrouteropenrouter:openai/gpt-4o
perplexitylangchain-perplexityperplexity:sonar-pro

常用用法示例

实例

from langchain.chat_models import init_chat_model

# 固定模型
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0)
response = model.invoke("你好")

# 可配置模型
model = init_chat_model(configurable_fields=("model", "temperature"))
response = model.invoke("你好", config={
    "configurable": {"model": "deepseek:deepseek-v4-flash", "temperature": 0.3}
})

# 绑定工具
model_with_tools = model.bind_tools([my_tool])
response = model_with_tools.invoke("查询天气")

# 结构化输出
model_structured = model.with_structured_output(MySchema)
result = model_structured.invoke("提取信息")