继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

LangChain 介绍 |助力大模型LLM应用开发从入门到精通

繁星coding
关注TA
已关注
手记 243
粉丝 10
获赞 56

概述

在探索 langchain知识库问答入门 的过程中,我们将引导您通过快速安装和环境设置,进入利用 LangChain 构建应用程序的世界。首先,您将学习如何安装 LangChain 和所需的 OpenAI 模型 API,以及如何通过环境变量管理 API 密钥。通过构建包含 LLMs(大型语言模型)和 ChatModels 的应用程序,我们可以进一步探索如 HumanMessageAIMessage 等角色在消息传递中的应用。此外,文章深入介绍了如何使用 Prompt Templates 为语言模型提供上下文,以及如何通过 Output Parsers 处理模型输出。 LLMChain 组件的组合允许创建复杂流程,如上下文提供、消息格式化和输出解析。我们将通过示例代码演示如何构建基本的翻译应用程序,这将加速您在 langchain知识库问答入门 领域的学习之旅。

快速入门 | 🦜️🔗 Langchain

安装

要安装LangChain,请运行:

pip install langchain

环境设置

使用LangChain通常需要与一个或多个模型提供者、数据存储、API等进行集成。在本示例中,我们将使用OpenAI的模型API。

首先,我们需要安装他们的Python包:

pip install openai

访问API需要一个API密钥,你可以通过创建一个帐户并前往 OpenAI帐户页面 来获取。当我们获得了一个密钥之后,我们需要通过运行以下命令将其设置为环境变量:

export OPENAI_API_KEY="你的API密钥"

如果你不想设置环境变量,你可以在初始化OpenAI LLM类时直接通过 openai_api_key 命名参数传递密钥:

from langchain.llms import OpenAI

llm = OpenAI(openai_api_key="你的API密钥")

构建应用程序

LLMs

LangChain中有两种类型的语言模型:

  • LLMs(Large Language Models):这是以字符串作为输入并返回字符串的语言模型。
  • ChatModels:这是以消息列表作为输入并返回消息的语言模型。

每个 ChatMessage 由两个部分组成:

  • content:这是消息的内容。

  • role:这是 ChatMessage 来自的实体的角色。LangChain提供了如下对象来帮助区分不同的角色:

    • HumanMessage:代表来自人类/用户的 ChatMessage
    • AIMessage:代表来自AI/助手的 ChatMessage
    • SystemMessage:代表来自系统的 ChatMessage
    • FunctionMessage:代表来自函数调用的 ChatMessage

如果这些角色都不适用,还可以使用 ChatMessage 类手动指定角色。

Prompt Templates

大多数LangChain应用程序不会直接将用户输入传递给LLM。通常,它们会将用户输入添加到一个更大的文本片段中,称为提示模板,该模板提供了有关特定任务的附加上下文。

提示模板将用户输入转化为完全格式化提示的所有逻辑绑定在一起。例如:

from langchain.prompts import PromptTemplate

prompt = PromptTemplate(template="What is a good name for a company that makes {product}?")

prompt.format(product="colorful socks")

使用提示模板的优势有:

  • 变量的灵活性:可以“部分”出变量或组合变量。
  • 模板组合:可以轻松地将不同的模板组合成一个单独的提示。
  • 生成消息列表:提示不仅可以包含有关内容的信息,还可以包含每个消息(其角色、其在列表中的位置等)。

Output Parsers

OutputParsers将LLM的原始输出转换为可以在下游使用的格式。有几种主要类型,包括:

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

LLMChain

现在,我们可以将所有这些组合成一个链组件。这个链组件将接收输入变量,将其传递给提示模板以创建提示,将提示传递给LLM,然后通过一个(可选的)输出解析器将输出传递出去。

from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain

template = "You are a helpful assistant."

chat_prompt = ChatPromptTemplate.from_template(template)

chain = LLMChain(llm=ChatOpenAI(), prompt=chat_prompt)

在构建应用程序时,可以利用这些构建块来构建更复杂的流程。例如,可以使用提示模板为LLM提供上下文,用输出解析器处理LLM的响应,并通过链将这些操作连接起来。

示例代码

以下是一个简单的示例:

from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain

# 创建提示模板
template = "You are a helpful assistant that translates {input_language} to {output_language}."
prompt = PromptTemplate(template=template, input_variables=["input_language", "output_language"])

# 创建链组件
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt)

# 使用链
input_language = "English"
output_language = "French"
response = chain.run(input_language=input_language, output_language=output_language)
print(response)

通过以上步骤和示例,您可以开始使用Langchain构建简单的语言模型应用程序。为了构建更复杂的应用程序,可以组合不同的组件并根据需要调整配置。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP