概述
在探索 langchain知识库问答入门
的过程中,我们将引导您通过快速安装和环境设置,进入利用 LangChain 构建应用程序的世界。首先,您将学习如何安装 LangChain 和所需的 OpenAI 模型 API,以及如何通过环境变量管理 API 密钥。通过构建包含 LLMs(大型语言模型)和 ChatModels 的应用程序,我们可以进一步探索如 HumanMessage
、AIMessage
等角色在消息传递中的应用。此外,文章深入介绍了如何使用 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
。
- HumanMessage:代表来自人类/用户的
如果这些角色都不适用,还可以使用 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构建简单的语言模型应用程序。为了构建更复杂的应用程序,可以组合不同的组件并根据需要调整配置。
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章