Langchain简单快速上手教程(二)——聊天模型之模型定义 聊天模型之模型定义前言一、聊天模型的定义(1) 通过API来定义聊天模型1、使用LLM专门的包2、使用init_chat_model()(2) 通过本地部署的 LLM 定义聊天模型ChatOllama结语前言由于LLM在各种语言类与语言相关任务上的表现出色现在LLM主要通过将消息列表作为输⼊并返回消息作为输出的聊天模型接口来进行访问。故本文再介绍了langchain如何安装后来进一步介绍langchain的聊天模型接口中的模型定义。一、聊天模型的定义(1) 通过API来定义聊天模型1、使用LLM专门的包在使用langchain去定义大语言模型的时候可以使用其专门的包的接口。下面演示用ChatOpenAI与ChatDeepSessk由于deepseek兼容openai的调用方式我们也可以用ChatOpenAI来调用deepseekimportosfromlangchain_openaiimportChatOpenAI# 定义模型modelChatOpenAI(modeldeepseek-v4-flash,api_keyos.environ.get(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com,)fromlangchain_deepseekimportChatDeepSeek# 定义模型modelChatDeepSeek(modeldeepseek-v4-flash)从上面两个例子里我们引出了关于ChatOpenAI或ChatDeepSeek这些函数接口的参数下面来简单介绍一下其部分常见参数以便我们更好地使用。参数名参数描述model要使用的模型的名称api_keyAPI 密钥如果未传入将从环境变量中读取base_urlAPI 请求的基本 URtemperature采样温度温度值越⾼AI 回答越天马行空温度越低回答则越保守max_tokens要⽣成的最大令牌数timeout请求超时时间max_retries最⼤重试次数在讲下一种方式前我们需要先见到介绍一下Runnable接口中的 .invoke() 调用。该方法是将单个输入转换为对应的输出。而其输入与输出都是Runnable实例。以下是class langchain_core.runnables.config.RunnableConfig 常用参数说明。参数名参数描述configurable通过 .configurable_fields在此 Runnable 或子 Runnable 上配置的属性的运行时值。run_id针对此调用运行的跟踪器的唯⼀标识符。如果未提供将⽣成新的 UUID。run_name此调用的跟踪器运⾏的名称。默认为类的名称。metadata此次调⽤和任何⼦调⽤的元数据。键是字符串值是 JSON。类型dict[str Any]2、使用init_chat_model()init_chat_model()是langchain对不同模型调用所实现的更上层的函数封装用于定义与初始化不同的聊天模型。fromlangchain.chat_modelsimportinit_chat_model gdp_modelinit_chat_model(gpt-4o-mini,model_provideropenai)deepseek_modelinit_chat_model(deepseek-v4-flash,model_providerdeepseek)上面的例子通过调用init_chat_model()其model与model_provider两个参数所实现的基本用法。我们还能通过其它参数实现模型的配置与定制。下面我们来展示一下其它用法。fromlangchain.chat_modelsimportinit_chat_modelfromlangchain_core.messagesimportHumanMessage,SystemMessage# 定制可配置的模型模型模拟器config_modelinit_chat_model(temperature0.3)messages[SystemMessage(content请补全一段故事50字以内),HumanMessage(content薛定谔的猫),]# # .invoke()的config参数才真正定义了模型print(fconfig_model {config_model.invoke(inputmessages,config{configurable:{model:deepseek-v4-flash}}).content})fromlangchain.chat_modelsimportinit_chat_modelfromlangchain_core.messagesimportHumanMessage,SystemMessage# 可配置的模型默认参数modelinit_chat_model(modeldeepseek-chat,temperature0.5,max_tokens1024,configurable_fields(temperature,max_tokens),config_prefixfirst)messages[SystemMessage(content请补全一段故事50字以内),HumanMessage(content薛定谔的猫)]# 原本输出print(model.invoke(messages).content)resultmodel.invoke(inputmessages,config{configurable:{first_temperature:0,first_max_tokens:10,}})# 精简输出print(result.content)且init_chat_model()函数所返回的是⼀个与指定的 model_name 和 model_provider 相对应的聊天模型模拟器 BaseChatModel。该模型是可配置的模拟器在传入配置后在运行时才会初始化其底层模型。(2) 通过本地部署的 LLM 定义聊天模型该方式和通过API调用大模型不同的是其是以调用通过Ollama所进行的本地部署的大模型进行的聊天模型定义。ChatOllamaChatOllama也是 LangChain 为通过 Ollama 部署的聊天模型所提供的具体实现类。因此ChatOllama 同样也实现了标准的 Runnable 接口。而用使用ChatOllama得先安装 Ollama包。pipinstalllangchain_ollama安装完后便可使用。其常见参数同ChatOpenAI和ChatDeepSeek一样这里所具体model与base_url得根据你通过Ollama本地部署得LLM来填。fromlangchain_ollamaimportChatOllama ollama_modelChatOllama(modelYOURMODEL,base_urlYOURURL)结语以上就是langchain聊天模型定义的内容了。如果喜欢我的内容请点赞、收藏加关注多多支持我这个编程小白啊以及欢迎各位在评论区讨论交流并指出我的不足谢谢大家。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/25 12:45:43
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/26 18:48:15
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/26 3:42:08
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/26 11:37:29
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:08:27
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/25 15:49:36

日新闻

周新闻