在本质上,LangChain 是一个创新的框架,专为利用语言模型能力构建应用程序而量身定制。它是为开发者设计的一套工具包,用于创建能够感知上下文并进行复杂推理的应用程序。
这意味着 LangChain 应用可以理解如提示指令或内容基础响应的上下文,并使用语言模型执行复杂的推理任务,比如决定如何回应或采取什么行动。LangChain 代表了一种开发智能应用程序的统一方法,以其多样化的组件简化了从概念到执行的过程。
了解 LangChain
LangChain 不仅仅是一个框架;它是一个成熟的生态系统,由几个重要的部分组成。
- 首先,有适用于 Python 和 JavaScript 的 LangChain 库。这些库是 LangChain 的支柱,为各种组件提供接口和集成。它们提供了将这些组件组合成链和 agent 的基本机制和环境,实现了“即插即用”的开发实现。
- 第二是 LangChain 模板。这是一系列可部署的参考架构,适用于广泛的任务。无论你是构建聊天机器人还是复杂的分析工具,这些模板都提供了一个坚实的基础起点。
- LangServe 是一个灵活的库,用于将 LangChain 链作为 REST API 部署。这个工具对于将你的 LangChain 项目转变为可访问且可扩展的 web 服务至关重要。
- 最后,LangSmith 是一个开发者平台。它旨在调试、测试、评估和监控基于任何 LLM 框架构建的链。与 LangChain 的无缝集成使其成为希望完善其应用程序的开发者的必备工具。
这些组件共同作用,使你能够轻松地开发、生产化和部署应用程序。通过 LangChain,可以先使用库编写应用程序,参考模板以获得指导。然后,LangSmith 可帮助检查、测试和监控你的链,确保应用程序不断改进并准备好部署。最后,通过 LangServe,可以轻松地将任何链转换为 API,使部署变得轻而易举。
在接下来的部分中,我们将深入探讨如何设置 LangChain 并开始你的旅程,以创建智能的、由语言模型驱动的应用程序。
安装与设置
准备好深入 LangChain 的世界了吗?安装和设置它非常简单。
第一步是安装。使用 pip
或 conda
轻松完成。以 pip
为例,在终端运行以下命令:
pip install langchain
如果喜欢从源代码安装,可以到 https://github.com/langchain-ai
找到 LangChain 的代码仓库,并克隆下来,然后到langchain/libs/langchain
目录,再运行:
pip install -e .
想探究实验性功能的,可以考虑安装langchain-experimental
。这是一个包含前沿代码的包,适用于研究和实验用途。使用以下命令进行安装:
pip install langchain-experimental
LangChain CLI 是一个用于处理 LangChain 模板和 LangServe 项目的便捷工具。要安装 LangChain CLI ,用下面的方法:
pip install langchain-cli
LangServe 是用于将开发好了的 LangChain 链(即有关应用)部署为 REST API ,它与 LangChain CLI 一起安装到了本地。
LangChain 通常需要与模型提供商、数据存储、API 等集成。在这个例子中,我们将使用 OpenAI 的模型 API。使用以下命令安装 OpenAI Python 包(目前,国内很多大模型都支持 OpenAI 的 API 形式,所以,以下内容读者可以更换为国内模型):
pip install openai
为了访问 API,将你的 OpenAI API 密钥设置为环境变量:
export OPENAI_API_KEY="your_api_key"
或者,直接在你的 Python 环境中传递密钥:
import os
os.environ['OPENAI_API_KEY'] = 'your_api_key'
模块
LangChain 允许通过模块创建语言模型应用程序。这些模块既可以独立存在,也可以组合起来用于复杂的用例。这些模块包括:
- 模型 I/O:促进与各种语言模型的交互,高效地处理它们的输入和输出。
- 检索:实现对应用特定数据的访问和交互,对于动态数据利用至关重要。
- 代理:根据高级指令选择合适的工具,增强决策能力。
- 链:提供预定义、可重用的组合,作为应用开发的构建块。
- 内存:维护跨多个链执行的应用状态,对于上下文感知交互至关重要。
每个模块都针对特定的开发需求,使得 LangChain 成为创建高级语言模型应用程序的全面工具包。
除了上述组件外,还有 LangChain 表达式语言(LCEL),这是一种声明式的方式,可以轻松地将模块组合在一起,并通过通用的Runnable 接口启用组件的链接。
LCEL 看起来像这样:
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import BaseOutputParser
# 示例链
chain = ChatPromptTemplate() | ChatOpenAI() | CustomOutputParser()
现在已经简介了基础知识,接下来将继续深入:
- 深入了解每个 LangChain 模块的详细信息。
- 学习如何使用 LangChain 表达式语言。
- 探索常见用例并实施它们。
- 使用 LangServe 部署端到端的应用程序。
- 查看 LangSmith 以进行调试、测试和监控。
丢掉幻想,准备斗争。