Langchain基础入门02——models

前言

Langchain为开发者提供了两类封装的语言模型:大语言模型(LLM)和聊天模型(Chat Models)。这两类模型的封装使得开发者能够更便捷地利用OpenAI API进行文本建模和生成。本篇文章就带大家去了解一下这两种模型的区别

LLM(大语言模型)

LLM是一种基于统计的机器学习模型,专注于对文本数据进行建模和生成。具体而言,Langchain中的LLM指的是文本补全模型,其通过学习语言模式、语法规则和语义关系,生成符合语言规则的连贯文本。

输入 输出
一条文本内容 一条文本内容

聊天模型(Chat Models)

聊天模型是语言模型的一种变体,它不仅使用语言模型,还提供了基于"聊天消息"的接口。在Langchain中,gpt系列模型属于聊天模型,而davinci、curie、babbage、ada等模型属于文本补全模型。

输入 输出
一组聊天消息 一条聊天消息

Langchain与OpenAI模型

Langchain通过封装不同的模型,为开发者提供了统一的接口。无论是文本补全模型还是聊天模型,Langchain将其抽象为相同的接口BaseLanguageModel。开发者可通过predictpredict_messages函数轻松调用不同模型,当使用LLM时推荐使用predict函数,当使用聊天模型时推荐使用predict_messages函数。接下来通过一些代码示例给大家展示一下两者的不同。

与LLM的交互

与LLM的交互,我们需要使用 langchain.llms 模块中的 OpenAI

python 复制代码
from langchain.llms import OpenAI

import os
os.environ['OPENAI_API_KEY'] = '您的有效OpenAI API Key'

llm = OpenAI(model_name="gpt-3.5-turbo")
response = llm.predict("What is AI?")
print(response)

与聊天模型的交互

与聊天模型的交互,我们需要使用 langchain.chat_models 模块中的 ChatOpenAI 类。

python 复制代码
from langchain.chat_models import ChatOpenAI
from langchain.schema import AIMessage, HumanMessage, SystemMessage

import os
os.environ['OPENAI_API_KEY'] = '您的有效OpenAI API Key'

chat = ChatOpenAI(temperature=0)
response = chat.predict_messages([ 
  HumanMessage(content="What is AI?")
])
print(response)

可以看到,聊天模型返回的是一个AIMessage 类型的对象。这里就要给大家科普一下Langchain里的三个消息类

三个消息类

Langchain框架提供了三个消息类,分别是 AIMessageHumanMessageSystemMessage。它们对应了OpenAI聊天模型API支持的不同角色 assistantusersystem

Langchain类 OpenAI角色 作用
AIMessage assistant 模型回答的消息
HumanMessage user 用户向模型的请求或提问
SystemMessage system 系统指令,用于指定模型的行为

我们尝试用SystemMessage来指定一下模型的行为,指定模型对AI一无所知,在回答AI相关问题时,回答"I don't know"。

python 复制代码
response = chat.predict_messages([
  SystemMessage(content="You are a chatbot that knows nothing about AI. When you are asked about AI, you must say 'I don\'t know'"),
  HumanMessage(content="What is deep learning?")
])
print(response)

结语

Langchain的模型封装为开发者提供了便捷、高效的方式,利用OpenAI API进行文本生成和语言建模。通过本文的介绍,希望读者能更深入地了解Langchain的模型体系,以及如何灵活运用这些模型进行自然语言处理的开发。

相关推荐
郑板桥3020 分钟前
一周AI热点速览(2026.03.31-04.06):GPT-6曝光、谷歌开源Gemma 4、资本狂飙与模型军备竞赛
人工智能·gpt·aigc
大写-凌祁21 小时前
RescueADI:基于自主智能体的遥感图像自适应灾害解译
人工智能·计算机视觉·语言模型·自然语言处理·aigc
泰白聊AI1 天前
AI 编程时代的规范驱动开发:OpenSpec 实践指南
服务器·人工智能·驱动开发·ai·aigc·ai编程
KC2701 天前
大模型提示词注入攻击与防御:当你的 AI 开始“不听话“
人工智能·安全·aigc
Hommy881 天前
【开源剪映小助手-客户端】目录扫描功能
python·开源·aigc·剪映小助手
光影少年1 天前
AI Agent智能体开发
人工智能·aigc·ai编程
小程故事多_802 天前
Anthropic 内部架构曝光,Claude Code 如何用 Harness 驾驭强智能
人工智能·架构·aigc·harness
小程故事多_802 天前
从Harness工程视角深度解读Claude Code源码,AI编码Agent的工业级实现逻辑
人工智能·aigc
小程故事多_802 天前
无 GitAI 依赖|企业 AI 编码合规管控 + 全生命周期追溯,实现效率与安全双向破局
人工智能·安全·架构·aigc·ai编程·harness
网络安全学习库2 天前
很喜欢Vue,但还是选择了React: AI时代的新考量
vue.js·人工智能·react.js·小程序·aigc·产品经理·ai编程