LangChain 简化

自从ChatGPT在2022年11月30日首次亮相以来,AI聊天机器人已经彻底改变了世界。只要提供足够的训练数据,它们现在可以轻松地执行各种各样的任务。这引出了一个问题:“我如何利用ChatGPT来开发自己的应用程序呢?”

保持HTML结构,将以下英文文本翻译为简体中文: 在这个领域有一个令人激动的新框架,称为“LangChain”。“LangChain是一个以语言模型为驱动的应用程序开发框架。” — 不仅限于Chat GPT。

虽然它提供了许多好处,但在本文中,我们将关注它最基本且广泛使用的好处 - 创建上下文感知的LLMs的能力。您可以使用LangChain创建一个聊天机器人,该机器人可以通过针对您应用程序使用情况的特定数据进行训练,以细化应用程序的响应。

入门指南

您可以在此链接中查看LangChain的文档 - https://python.langchain.com/docs/get_started/introduction

注意 — 如果你正在使用Windows系统上的Python,请使用‘pip’;但如果你正在使用Linux或macOS系统上的Python,请使用‘pip3’。

pip install langchain

这将安装LangChain的最基本要求。LangChain的很多价值来自于与各种模型提供商、数据存储等的集成。默认情况下,用于这样做的依赖项未被安装。您需要单独安装特定集成的依赖项。

LangChain CLI对于处理LangChain模板和其他LangServe项目非常有用。安装方法如下:

pip install langchain-cli

现在,查看您的LLM日志的最佳方式是使用LangSmith。您需要通过以下链接进行注册——https://smith.langchain.com/然后您可以在.env文件中设置环境变量,如下所示——

export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="..."

LangChain 允许您在本地运行几个 LLM 包括 Lama,但是本文将使用 OpenAI 的 sdk。

首先,我们需要导入LangChain x OpenAI集成软件包。

pip install langchain-openai

接下来,请在此处创建一个 OpenAI 账户以获取 OpenAI API 密钥 — https://platform.openai.com/account/api-keys。

您将获得约5美元的信用额度,可以免费使用OpenAI的API。

一旦我们有了一个关键字,我们希望通过运行以下命令将其设置为.env文件中的环境变量:

export OPENAI_API_KEY="..."

现在,创建一个文件,暂时叫做llm.py。

然后我们可以初始化模型:

from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
load_dotenv()
llm = ChatOpenAI()

现在,llm变量实际上是您连接到OpenAI的客户端。在这一点上,您可以通过使用invoke方法开始向它提问,就像这样向chatgpt提问一样 -

from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
load_dotenv()
llm = ChatOpenAI()
res = llm.invoke("Hi")
print(res.content)

现在,对于您的特定应用程序,您可能希望为用例指导您的回答。您可以通过使用提示模板来实现。输入到调用函数的文本实质上对LLM是我们的提示。

例如,假设我们希望我们的LLM告诉我们关于用户输入的特定食物中的宏量营养素。我们会这样写:

from dotenv import load_dotenv
load_dotenv()
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

llm = ChatOpenAI()
promptTemplate = """You are a dietician. Tell me the average macronutrient values for {macroNutrientList} for the following dish.
If possible, include both the absolute values and the percentage of daily recommended intake."""
humanTemplate = "{text}"

chatPrompt = ChatPromptTemplate.from_messages([
("system", promptTemplate),
("user", humanTemplate)
])
chain = chatPrompt | llm
res = chain.invoke({"macroNutrientList": "protein, carbohydrates, fats, sugar", "text": "What are the nutrients in a sweet potato?"})
print(res.content)

这导致输出结果为如下 —

然而,直接处理字符串通常比处理llm返回的对象更方便。因此,我们将输出解析器添加到我们的链中,如下所示-

from langchain_core.output_parsers import StrOutputParser
outputParser = StrOutputParser()
chain = chatPrompt | llm | outputParser

这就是你开始使用LangChain所需的一切。恭喜你!你拥有了你的第一个个人聊天机器人。在下一篇博客文章中,我们将看看如何使用你自己的个人数据来调整你的LLM以满足你的应用程序的特定需求,以及一个LangChain项目架构应该是什么样的。

2024-02-15 04:11:49 AI中文站翻译自原文