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 角色
AIMessageassistant模型回答的消息
HumanMessageuser用户向模型的请求或提问
SystemMessagesystem系统指令,用户指定模型的行为