langchain-模型
一、langchain 封装的模型分为两类
- 大语言模型(LLM)
- 聊天模型(Chat Models)
Langchain 支持众多模型供应商,包括OpenAI、ChatGLM、HungingFace
1,LLM
- LLM 是一种基于统计的机器学习模型,用于对文本数据进行建模和生成。LLM学习和捕抓文本数据中的语言模式、语法规则和语义关系,以生成连贯并合乎语言规则文本。
- langchain 环境中,LLM特指文本补全模型(text completion model)
输入 | 输出 |
---|---|
一条文本内容 | 一条文本内容 |
2,聊天模型
- 聊天模型是语言模型的一种变体。聊天模型使用语言模型,并提供“聊天消息”的接口。
输入 | 输出 |
---|---|
一条聊天消息 | 一条聊天消息 |
二、 langchain 与 OpenAi 模型
-
GPT 模型归位聊天模型
-
davinci、curie、babbage、ada 模型归位文本补全模型
-
langchain 提供接口继承不同的模型,为了便于切换模型,langchain 将不同的抽象模型为相同的接口 BaseLanguageModel , 并提供 predict 和 predict_message 函数来调用模型。
- 当使用LLM 时推荐使用 predict 函数,当使用聊天模型时推荐使用 predict_message函数
三、langchain 事例
1,LLM 交互
from langchain.llms import OpenAI
import os
os.environ["OPENAI_API_KEY"] = "openi_key"
llm = OpenAI(model_name="text-davinci-003")
response = llm.predict("用 node.js 写一个tcp")
print(response)
2,聊天模型交互
from langchain.chat_models import ChatOpenAI
from langchain.schema import AIMessage,HumanMessage,SystemMessage
import os
os.environ["OPENAI_API_KEY"] = "openai_key"
# humaMessage 用户消息
# chat = ChatOpenAI(temperature=0)
# response = chat.predict_messages([
# HumanMessage(content="用solidity 写一个dapp")
# ])
# systemMessage 指令消息
chat = ChatOpenAI(temperature=0)
response = chat.predict_messages([
SystemMessage(content="所有的回答,都要带上,主人,开头"),
HumanMessage(content="怎么做饭")
])
print(response)
langchain 类 | openAI 角色 | openAI 角色 |
---|---|---|
AIMessage | assistant | 模型回答的消息 |
HumanMessage | user | 用户向模型的请求或提问 |
SystemMessage | system | 系统指令,用户指定模型的行为 |