聊天模型之模型定义前言一、聊天模型的定义(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聊天模型定义的内容了。如果喜欢我的内容请点赞、收藏加关注多多支持我这个编程小白啊以及欢迎各位在评论区讨论交流并指出我的不足谢谢大家。
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聊天模型定义的内容了。如果喜欢我的内容请点赞、收藏加关注多多支持我这个编程小白啊以及欢迎各位在评论区讨论交流并指出我的不足谢谢大家。