定义聊天模型
ChatOpenAI 常见参数
| 参数 | 使用 | 意义 |
|---|---|---|
api_key | 传入 API_KEY | 请求密钥 |
model | 传入模型字符串 | 表示选择哪个模型 |
base_url | 传入字符串路径 | 请求 API 的路径 |
temperature | 传入数字 | 数字越大,内容越天马行空 |
time_out | 传入数字 | 超出时间限制 |
max_retries | 传入整数 | 最大重试次数 |
max_tokens | 传入整数 | 最大 token 数 |
organization | 传入字符串 | 组织Id |
temperature
前置内容
SystemMessage: 请帮我补充下述句子,50字以内HumanMessage: "我有一条鱼,__
| 温度值 | 适用场景 |
|---|---|
| 0 | 代码等实事求是的场景 |
| 0 ~ 0.5 | 文档/写作等轻微创意的场景 |
| 0.5 ~ 1 | 对话等平衡创意的场景 |
| 1 ~ 2 | 灵感激发等高度创意的场景 |
| > 2 | × 不推荐 |
temperature设置为0时text输出结果: 它会翻跟头,还会用尾巴画彩虹。 我有一条鱼,它总在缸里画圈,像在写一首只有水懂的诗。 我有一条鱼,它总在鱼缸里悠闲地转圈,像在跳水中芭蕾。 它总是快乐地在水里游来游去,给我带来无限欢乐。temperature设置为0.5时text输出结果: 我有一条鱼,它会在夜里发光,照亮我失眠的梦。 我有一条鱼,它总爱在鱼缸里转圈,像在跳华尔兹。 它是一条金鱼,在水里自由自在地游着。temperature设置为1时text输出结果: 我有一条鱼,它每天都快乐地在水里游来游去。 我有一条鱼,养在透明的玻璃缸里,每天悠闲地吐着泡泡。 但它总想学我走路,结果在鱼缸里摔了八跤。 我有一条鱼,它总在鱼缸里对着我吐泡泡,像是在说悄悄话。temperature设置为2时text输出结果: 我给它取名叫“小鲨鱼”,它总是优雅地吐着泡泡。 我有一条鱼,它总在鱼缸里转圈圈,像在跳舞。 我有一条鱼,它总在夜里悄悄练习飞翔,梦想着变成一只鸟。 它总爱在鱼缸里转圈,仿佛在跳圆舞曲。
init_chat_model
它的参数与上诉的参数类似
快速入门
- 下载包:
pip install -U langchain - 使用 init_chat_modelPython
# model_provider 是模型提供商, deepseek-v4-flash 是模型 model = init_chat_model('deepseek-v4-flash', model_provider='deepseek') print(model.invoke("你是谁"))
自定义模型配置
- 开始的时候不需要配置模型
model = init_chat_model(temperature=0.3) - 在
invoke()中对于config传入相关参数即可Pythonmessages = [ SystemMessage("请帮我补充下述句子,50字以内"), HumanMessage("我有一条鱼,__") ] # config 里面传入对象,key 是 configurable,value 是 model: deepseek-v4-flash 这个对象 print(model.invoke(messages, config={'configurable': {"model": 'deepseek-v4-flash'}}))
修改默认参数
在 init_chat_model 内添加 configurable_fields
model_provider="openai"必须添加,不然会获取到DEEKSEEK_API_KEY这个环境变量, 而不是 阿里云配置的OPENAI_API_KEYPython# 设置模型 model = init_chat_model( model='deepseek-v4-flash', base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 这个是起到默认API_KEY 的名称的配置, # 比如 openai 就是 OPENAI_API_KEY, deepseek 就是 DEEPSEEK_API_KEY model_provider="openai", max_tokens=1024, # 元组内必须添加 "," 用来区别字符串与元组。 # 如果写的是 ("max_tokens") 那么就不会生效 configurable_fields=("max_tokens", ), config_prefix="pre" # 这个可以不加,但是最好加一下,以免区分不了默认的与后修改的 )其余步骤都一样,只需要在
configurable里面添加pre前缀即可Python# 设置模型 messages = [ SystemMessage("请帮我补充下述句子,100字以内"), HumanMessage("一只橘黄色的小猫,__") ] result = model.invoke(messages, config={ "configurable": { "pre_max_tokens": 20, # 如果生效,那么就没有输出,不生效才有输出 } }) print(result.content)