使用 LangChain 构建 LLM 驱动应用程序的初学者指南!
如果您是开发者,或者仅仅是对技术充满热情,您可能接触过 ChatGPT 之类的 AI 工具。这些实用程序基于先进的大型语言模型 (LLM)。想更上一层楼,打造您自己的基于 LLM 的应用程序吗?如果是,LangChain 就是您的理想平台。
我们先把所有事情放在一边,先了解一下法学硕士(LLM)。然后,我们可以通过一个简单的教程来了解一下 LangChain。听起来够有趣了吧?那就开始吧。
什么是大型语言模型 (LLM)?
OpenAI 的 GPT-3 和 GPT-4 等大型语言模型 (LLM) 是一种机器学习算法,旨在根据训练数据理解并生成类似人类的文本。这些模型使用具有数百万甚至数十亿个参数的神经网络构建,使其能够执行诸如翻译、摘要、问答甚至创意写作等复杂任务。
法学硕士(LLM)接受多样化、广泛的数据集(通常涵盖互联网、书籍和其他文本)的训练,分析单词和短语之间的模式和关系,从而生成连贯且与上下文相关的输出。虽然它们可以执行各种各样的语言任务,但它们没有意识,也不具备理解力或情感,尽管它们能够在生成的文本中模仿这些特质。
资料来源:NVIDIA
大型语言模型主要属于一种称为“Transformer 网络”的深度学习结构。Transformer 模型是一种神经网络,它通过识别序列中元素(例如给定句子中的单词)之间的联系来理解上下文和重要性。
LangChain 是什么?
LangChain由Harrison Chase开发,于 2022 年 10 月首次亮相,是一个开源平台,旨在构建由大型语言模型驱动的坚固应用程序,例如 ChatGPT 等聊天机器人和各种定制应用程序。
Langchain 致力于为数据工程师提供一套全面的工具包,以便在聊天机器人、自动问答、文本摘要等各种用例中使用 LLM。
LangChain 由 6 个模块组成,解释如下:
图片来源:ByteByteGo
-
大型语言模型:
LangChain 作为标准接口,允许与各种大型语言模型 (LLM) 进行交互。 -
提示构造:
LangChain 提供各种类和函数,旨在简化创建和处理提示的过程。 -
对话记忆:
LangChain 包含记忆模块,可以管理和更改过去的聊天对话,这是需要回忆以前互动的聊天机器人的一个关键功能。 -
智能代理:
LangChain 为代理提供了全面的工具包。这些代理可以根据用户输入选择使用哪些工具。 -
索引:
LangChain 中的索引是一种组织文档的方法,以便于与 LLM 进行有效交互。 -
链:
虽然使用单个 LLM 可能足以完成较简单的任务,但 LangChain 提供了一个标准接口和一些常用的实现,用于将 LLM 链接在一起以实现更复杂的应用程序,无论是在它们之间还是与其他专用模块之间。
LangChain 如何运作?
LangChain 由海量数据组成,它将这些数据分解成更小的块,这些块可以轻松嵌入到向量存储中。现在,借助 LLM,我们可以检索所需的唯一信息。
当用户输入提示时,LangChain 会查询 Vector Store 中的相关信息。当找到完全匹配或几乎匹配的信息时,我们会将该信息提供给 LLM 来完善或生成用户所需的答案。
开始使用 LangChain
让我们使用 SingleStore 的 Notebooks 功能(免费使用)作为本教程的开发环境。
SingleStore Notebook 扩展了 Jupyter Notebook 的功能,使数据专业人员可以轻松地工作和使用。
什么是 SingleStore?
SingleStore是一个分布式内存 SQL 数据库管理系统,专为高性能、高速度应用程序而设计。它提供实时分析功能,并将传统操作型数据库的功能与分析型数据库的功能相结合,允许在单个系统中执行事务和分析。
注册SingleStore以使用笔记本。
注册 SingleStore 后,您还将获得价值 600 美元的免费计算资源。不妨抓住这个机会。
将其命名为“LangChain-Tutorial”或根据您的意愿命名。
让我们开始使用刚刚创建的 Notebook 吧。
按照本分步指南,将每个步骤中显示的代码添加到 Notebook 中并执行。开始吧!
现在,要使用 Langchain,我们首先使用 pip 命令安装它。
!pip install -q langchain
要使用 LangChain,您需要与一个或多个模型提供商(例如 OpenAI 或 Hugging Face)集成。在本例中,我们将利用 OpenAI 的 API,因此请先安装它。
!pip install -q openai
接下来,我们需要设置环境变量来运行playaround。
我们开始吧。
import os
os.environ["OPENAI_API_KEY"] = "Your-API-Key"
希望您知道如何获取 Your-API-Key,如果不知道,请转到此链接获取您的 OpenAI API 密钥。
[注意:请确保您仍然有使用 API 密钥的配额]
接下来,让我们获得像 OpenAI 这样的 LLM 并使用这个模型进行预测。
让我们向我们的模型询问世界上人口最多的五个城市。
from langchain.llms import OpenAI
llm = OpenAI(temperature=0.7)
text = "what are the 5 most populated cities in the world?"
print(llm(text))
如您所见,我们的模型做出了预测并打印出了世界上人口最多的 5 个城市。
提示模板
我们首先来定义提示模板。
from langchain.prompts import PromptTemplate
# Creating a prompt
prompt = PromptTemplate(
input_variables=["input"],
template="what are the 5 most {input} cities in the world?",
)
我们创建了提示。为了获得预测,现在让我们调用 format 方法并传递一个输入。
创建链
到目前为止,我们已经了解了如何初始化 LLM 模型,以及如何使用该模型进行预测。现在,让我们更进一步,使用 LLMChain 类将这些步骤串联起来。
from langchain.chains import LLMChain
# Instancing a LLM model
llm = OpenAI(temperature=0.7)
# Creating a prompt
prompt = PromptTemplate(
input_variables=["attribute"],
template= "What is the largest {attribute} in the world?",
)
您可以看到模型的预测。
使用 LangChain LLM 开发应用程序
再次使用 SingleStore 的 Notebooks 作为开发环境。
让我们开发一个非常简单的聊天应用程序。
从一个空白笔记本开始,并根据您的意愿命名。
- 首先,安装依赖项。
pip install langchain openai
- 接下来,导入已安装的依赖项。
from langchain import ConversationChain, OpenAI, PromptTemplate, LLMChain
from langchain.memory import ConversationBufferWindowMemory
# Customize the LLM template
template = """Assistant is a large language model trained by OpenAI.
{history}
Human: {human_input}
Assistant:"""
prompt = PromptTemplate(input_variables=["history", "human_input"], template=template)
- 使用您安全保存的 API 密钥加载 ChatGPT 链。添加人工输入“什么是 SingleStore?”。您可以根据需要更改输入内容。
chatgpt_chain = LLMChain(
llm=OpenAI(openai_api_key="YOUR-API-KEY",temperature=0),
prompt=prompt,
verbose=True,
memory=ConversationBufferWindowMemory(k=2),
)
# Predict a sentence using the chatgpt chain
output = chatgpt_chain.predict(
human_input="What is SingleStore?"
)
# Display the model's response
print(output)
该脚本使用 OpenAI API 密钥和预设提示初始化 LLM 链。然后,它接受用户输入并显示结果输出。
通过改变人类输入的文本/内容来玩这个。
完整的执行步骤以代码形式可以在GitHub上找到。
对于致力于构建由大型语言模型驱动的尖端应用程序的数据工程师和开发者来说,LangChain 是一个不可或缺的框架。与传统的工具和平台不同,LangChain 提供了一个更强大、更灵活的框架,专为复杂的 AI 应用程序量身定制。LangChain 不仅仅是开发者工具库中的又一个工具;它是一个变革性的框架,重新定义了 AI 应用领域的可能性。
在 GenAI 应用和 LLM 领域,强烈建议了解矢量数据库。我最近写了一篇关于矢量数据库的完整概述,你或许可以看看那篇文章。
注意:学习 LLM 和 LangChain 还有很多内容,这是我第一次尝试撰写有关该框架的文章。这不是关于 LangChain 的完整指南。请阅读更多文章和教程,以深入了解 LangChain。
别忘了注册 SingleStore来使用免费的 Notebooks 功能。尽情玩耍,享受学习的乐趣。
免责声明:ChatGPT 仅对本文的部分内容提供了帮助。
鏂囩珷鏉ユ簮锛�https://dev.to/pavanbelagatti/a-beginners-guide-to-building-llm-powered-applications-with-langchain-2d6e