前言

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

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根底入门02——models

与谈天模型的交互

与谈天模型的交互,咱们需求运用langchain.chat_models模块中的ChatOpenAI类。

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)

Langchain根底入门02——models
可以看到,谈天模型回来的是一个AIMessage类型的目标。这里就要给大家科普一下Langchain里的三个音讯类

三个音讯类

Langchain结构供给了三个音讯类,分别是AIMessageHumanMessageSystemMessage。它们对应了OpenAI谈天模型API支持的不同人物assistantusersystem

Langchain类 OpenAI人物 作用
AIMessage assistant 模型答复的音讯
HumanMessage user 用户向模型的请求或提问
SystemMessage system 体系指令,用于指定模型的行为

咱们尝试用SystemMessage来指定一下模型的行为,指定模型对AI一窍不通,在答复AI相关问题时,答复“I don’t know”。

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根底入门02——models

结语

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