LangChain的快速入门(官方文档版)

安装python库

pip install langchain

下载对应大模型的库(此例为openai)

pip install openai

创建LLMclient便于操作

from langchain.llms import OpenAI
#若是其他大模型,则使用对应客户端
llm = OpenAI(openai_api_key="...")

LangChain拥有三个最关键的部分:

  • LLM: 语言模型是核心推理引擎。要使用LangChain,您需要了解不同类型的语言模型以及如何使用它们。
  • Prompt Templates: 提供语言模型的指令。这控制了语言模型的输出,因此了解如何构建提示和不同的提示策略至关重要。
  • Output Parsers: 将LLM的原始响应转换为更易处理的格式,使得在下游使用输出变得容易。

LLM

LLM含有两种大模型:

  • LLMs: 这是一个以字符串作为输入并返回字符串的语言模型
  • ChatModels: 这是一个以消息列表作为输入并返回消息的语言模型(NVDIA的就是该模型)

不同之处?

不同之处在于ChatModels输入一个ChatMessage列表,但只返回一个ChatMessage

一个ChatMessage包含两个必须的组件:

  • content: 这是消息的内容。
  • role: 这是ChatMessage来自的实体的角色。
    • HumanMessage: 来自人类/用户的ChatMessage
    • AIMessage: 来自AI/助手的ChatMessage
    • SystemMessage: 来自系统的ChatMessage
    • FunctionMessage: 来自函数调用的ChatMessage

LangChain为两者提供了一个标准接口,但了解这种差异以便为给定的语言模型构建提示非常有用。LangChain提供的标准接口有两种方法:

  • predict: 接受一个字符串,返回一个字符串
  • predict_messages: 接受一个消息列表,返回一个消息。(消息是一个类)

predict的方法

text = "What would be a good company name for a company that makes colorful socks?"

llm.predict(text)
# >> Feetful of Fun

chat_model.predict(text)
# >> Socks O'Color

predict_messages的方法

from langchain.schema import HumanMessage

text = "制造多彩袜子的公司的好名字是什么?"
messages = [HumanMessage(content=text)]

llm.predict_messages(messages)
# >> Feetful of Fun

chat_model.predict_messages(messages)
# >> Socks O'Color

Template提示模板(Prompt模板)

类似于python里的字符串替换,灵活的编写prompt

创建模板

from langchain.prompts.chat import (
    ChatPromptTemplate,
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
)

#系统消息
template = "You are a helpful assistant that translates {input_language} to {output_language}."
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
#用户消息
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

#
chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])

chat_prompt.format_messages(input_language="English", output_language="French", text="I love programming.")

结果

[
    SystemMessage(content="You are a helpful assistant that translates English to French.", additional_kwargs={}),
    HumanMessage(content="I love programming.")
]

输出解释器(OutputParsers)

就是一个将返回的消息结果或是字符串转换为自己想要的格式

例如:

  • 将LLM的文本转换为结构化信息(例如JSON)
  • 将ChatMessage转换为字符串
  • 将除消息之外的其他信息(如OpenAI函数调用)转换为字符串。

LLMChain*

LangChain的一大特色,能够将上一个方法的结果作为下一个方法的输入,以此形成一个链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值