赞
踩
GPT-4 和 LLaMA 等大型语言模型 (LLM) 在过去几年中创造了一个充满可能性的世界。 它预示着人工智能工具和应用程序的繁荣,ChatGPT 似乎一夜之间成为家喻户晓的名字。 但如果没有为促进新一代应用程序而创建的强大工具和框架,这种繁荣就不可能实现。
LangChain 就是这些框架之一,它可以轻松地使用现有的 LLMs 构建新应用程序。 它由机器学习专家 Harrison Chase 开发,并于 2022 年作为开源项目推出。 该框架在弥合现有语言模型和构建新的多样化应用程序之间的技术差距方面迈出了巨大的一步。
简单来说,LangChain是一个标准化的接口,可以简化构建AI应用程序的过程。 它为你提供了多种工具,可用于连接不同的组件并创建复杂的工作流程。 这包括 LLMs 和各种类型的数据源。 当用户与应用程序交互时,LangChain 使用其与 LLM 的连接来处理请求并生成适当的响应。 它还可以使用来自文档或数据库等外部来源的信息和数据来提供更准确且与上下文相关的答案。
例如,如果用户提出问题,LangChain 将使用 LLM 来理解问题并制定答复。 但它也会从一个或多个外部数据源获取数据以增强其回复。 这使你的应用程序更加智能,并且能够处理复杂和专门的查询。
从本质上讲,你可以通过向 LLM 提供与你希望其解决的问题更相关的数据来增强其能力。
它以 Python 和 TypeScript 包的形式提供,具有几个令人印象深刻的功能:
这种功能组合使其灵活、快速、可扩展且易于使用,对于任何想要开始使用 AI 的开发者来说,这简直是音乐般的美妙。
LangChain 是一个与 LLMs 集成的模块化框架。 它是一个标准化的接口,消除了使用不同 LLM API 的复杂性和困难 - 这与 GPT-4、LLaMA 或你想要使用的任何其他 LLM 集成的过程相同。 它还具有动态 LLM 选择功能,这意味着开发人员可以为他们使用 LangChain 执行的特定任务选择最合适的 LLM。
模块化设计还有助于将输入数据处理和转换为可操作的输出。 它处理各种数据类型,包括文本、代码和多媒体格式,并提供用于预处理、清理和规范化数据的工具。 这是为了确保数据适合 LLMs 使用,并且可能涉及标记化、规范化和语言识别。
LangChain 还处理 LLM 的输出,将其转换为适合应用程序或特定任务要求的格式。 这包括格式化文本、生成代码片段以及提供复杂数据的摘要等。
LangChain 的架构建立在组件和链的概念之上。 组件表示执行特定任务的可重用模块,例如处理输入数据、生成文本格式、访问外部信息或管理工作流程。 链是一系列组件,它们协同工作以实现更广泛的目标,例如总结文档、生成创意文本格式或提供个性化建议。
在 LangChain 中,术语 “组件(components)” 和 “模块 (modules)” 有时可以互换使用,但两者之间有一个微妙的区别:
与组件一样,模块是可重用的,并且可以组合在一起以创建更复杂的工作流程。 这称为链,将组件或模块序列组合在一起以实现特定目标。 链是 LangChain 中工作流程编排的基础,对于构建处理各种任务的有效应用程序至关重要。
LangChain 通过提供标准化接口与 LLMs 无缝集成。 但 LangChain 与 LLM 的整合不仅仅是提供一个连接机制。 它还提供了多种功能来优化 LLM 的使用,以构建基于语言的应用程序:
在 LangChain 中,工作流管理是编排和控制链和代理的执行以解决特定问题的过程。 这涉及管理数据流、协调组件的执行以及确保应用程序有效地响应用户交互和不断变化的环境。 以下是一些关键的工作流程管理组件:
LangChain 的优点之一是上手要求很少。 在本指南中,我们将使用 Python,因此你需要在计算机上安装 Python 3.8 或更高版本。 就是这样!
第一步是安装核心 LangChain 框架。 最简单的方法是使用以下 PIP 命令:
pip install langchain
接下来你需要的是一个可供 LangChain 交互的 LLM。 我们将在本示例中使用 OpenAI,但你可以在应用程序中使用任何你想要的 LLM:
pip install openai
为了让 OpenAI 正常工作,你还需要一个 API 密钥来验证你的请求。 你可以通过创建 OpenAI 帐户、转到 API 密钥部分并选择 “Create new secret key” 来获取密钥。 拿到密钥后,请将其存放在安全的地方。 你很快就会需要它。
最后,创建一个名为 data.txt 的文本文件。 这将是你用来为 LLM 提供上下文的外部数据源:
- In West Philadelphia born and raised
- On the playground was where I spent most of my days
- Chillin' out, maxin', relaxin', all cool
- And all shootin' some b-ball outside of the school
现在是有趣的时候了!
为了构建这个 LangChain 应用程序,你需要打开你选择的文本编辑器或 IDE,并在与 data.txt 相同的位置创建一个新的 Python (.py) 文件。 你将创建一个超级基本的应用程序,向 OpenAI 的 GPT-3 LLM 发送提示并打印响应。
正在寻找更高级的东西吗? 查看我们的将 Amazon Bedrock 与 Elasticsearch 和 Langchain 结合使用的指南。
在 Python 脚本的顶部,添加此导入语句以从 LangChain 的 LLM 模块中提取 OpenAI 类:
from langchain.llms import OpenAI
定义该函数,以便应用程序将文件路径作为参数。 这将打开文件进行读取并返回其内容:
- def read_data_from_file(file_path):
- with open(file_path, 'r') as file:
- return file.read()
使用你的 API 密钥创建 OpenAI 类的实例,将 YOUR-OPENAI-KEY 替换为你从 OpenAI 获取的实际密钥:
gpt3 = OpenAI(api_key='YOUR-OPENAI-KEY')
编写一个函数,将提示作为参数并返回 GPT-3 模型的响应:
- def get_response(prompt):
- return gpt3(prompt)
指定文本文件的路径并使用你之前定义的函数来读取其内容。 然后,你将数据存储在 external_data 变量中:
- file_path = 'data.txt'
- external_data = read_data_from_file(file_path)
你可以在此处定义要发送到 GPT-3 的提示。 在此示例中,你将要求它读取文本并告诉你文本文件正在谈论哪个电视节目:
prompt = f"Based on the following data: {external_data}, what TV show is this about?"
调用发送准备好的提示的函数,然后检索并打印来自 GPT-3 的响应:
print("Response:", get_response(prompt))
完成所有这些后,你将拥有一个如下所示的 Python 应用程序:
test.py
- from langchain.llms import OpenAI
-
- # Function to read data from a file
- def read_data_from_file(file_path):
- with open(file_path, 'r') as file:
- return file.read()
-
- # Initialize the LLM
- gpt3 = OpenAI(api_key='YourOpenAIkey')
-
- def get_response(prompt):
- return gpt3(prompt)
-
- # Read data from your text file
- file_path = 'data.txt'
- external_data = read_data_from_file(file_path)
-
- # Prepare your prompt including the external data
- prompt = f"Based on the following data: {external_data}, what TV show is this about?"
-
- # Get the response from GPT-3
- print("Response:", get_response(prompt))
所以现在剩下要做的就是运行你的 Python 应用程序以确保它正常工作! 保存文件,并在终端中使用以下命令运行你的应用程序:
python YOUR-APP-NAME.py
- $ python test.py
- /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/langchain/llms/__init__.py:548: LangChainDeprecationWarning: Importing LLMs from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:
-
- `from langchain_community.llms import OpenAI`.
-
- To install langchain-community run `pip install -U langchain-community`.
- warnings.warn(
- /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.llms.openai.OpenAI` was deprecated in langchain-community 0.0.10 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import OpenAI`.
- warn_deprecated(
- /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The function `__call__` was deprecated in LangChain 0.1.7 and will be removed in 0.2.0. Use invoke instead.
- warn_deprecated(
- Response:
-
- The TV show is "The Fresh Prince of Bel-Air".
这个例子是一个过于简化的演示,但 LangChain 的灵活性意味着构建新的AI应用程序有无限的可能性。 我们不可能尝试在这里将它们全部列出,但我们将通过一些案例研究来强调你可以构建的各种东西:
现在应该很清楚了,通过将 LLMs 的力量与外部数据源中的上下文和额外信息相结合,LangChain 为你提供了无限的可能性。 正如本教程所示,它也非常容易上手。 LangChain 的易用性与灵活性和强大功能相结合,使其成为开发各种人工智能应用程序的理想平台。 无论你是构建聊天机器人、问答应用程序还是搜索引擎,LangChain 都可以帮助你创建创新且有效的解决方案。
只要你准备好,我们可以通过以下四种方式帮助你从业务数据中获取见解:
原文:LangChain Tutorial: An Intro to Building LLM-powered apps | Elastic Blog
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。