https://js.langchain.com/docs/get_started/introduction
Here’s how to install
LangChain
, set up your environment, and start building.
以下是如何安装LangChain、设置环境并开始构建的步骤。
We recommend following our
Quickstart guide
tofamiliarize yourself with the framework
by buildingyour first LangChain application
.
我们建议您按照我们的快速入门指南,通过构建第一个LangChain应用程序来熟悉该框架。
Read up on our
Security
best practices to make sure you’re developing safely with LangChain.
阅读我们的安全最佳实践,确保您在开发LangChain时的安全性。
NOTE
These docs focus on the
Python LangChain library
.Head here for docs on the JavaScript LangChain library.
这些文档专注于Python LangChain库。要查看JavaScript LangChain库的文档,请转到此处。
https://python.langchain.com/docs/get_started/quickstart
In this quickstart we’ll show you how to:
Get setup with
LangChain
,LangSmith
andLangServe
Use the most basic and common components of LangChain:
prompt templates
,models
, andoutput parsers
Use
LangChain Expression Language
,the protocol that LangChain is built on
andwhich
facilitates
component chainingBuild a simple application with
LangChain
Trace your application with
LangSmith
Serve your application with
LangServe
That’s a fair amount to cover! Let’s dive in.
在这个快速入门中,我们将向您展示如何:
设置LangChain、LangSmith和LangServe
使用LangChain的最基本和常见的组件
:提示模板、模型和输出解析器
使用LangChain表达式语言,这是LangChain所构建的协议,可以简化facilitates
组件链的使用
使用LangChain构建一个简单的应用程序
使用LangSmith跟踪您的应用程序
使用LangServe为您的应用程序提供服务
这涵盖了相当多的内容!
让我们开始吧。
To install LangChain run:
要安装LangChain,请运行以下命令:
pip install langchain
For more details, see our Installation guide.
对于更多的细节,可以查看我们的安装指导。
Using LangChain will usually require
integrations
with one or moremodel providers
,data stores
,APIs
, etc.For this example, we’ll use
OpenAI's model APIs
.
使用LangChain通常需要与一个或多个模型提供商、数据存储、API等进行集成。
在这个例子中,我们将使用OpenAI的模型API。
First we’ll need to install their Python package:
首先,我们需要安装他们的Python包:
pip install openai
Accessing the API requires an API key, which you can get by creating an account and heading here.
访问API需要一个API密钥,您可以通过创建一个账户并前往这里来获取。一旦我们获得了密钥,我们就需要通过运行以下命令将其设置为环境变量:
Once we have a key we’ll want to set it as an environment variable by running:
export OPENAI_API_KEY="..."
If you’d prefer not to set an environment variable you can pass the key in directly via the
openai_api_key
named parameter when initiating the OpenAI LLM class:
如果您不想设置环境变量,您可以在初始化OpenAI LLM类时直接通过openai_api_key命名参数传递密钥:
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(openai_api_key="...")
aiohttp:一个用于异步 HTTP 请求的库,用于构建基于异步的网络应用程序。
aiosignal:在异步代码中处理操作系统信号的库。
annotated-types:为类型提示提供附加的注解类型信息的库。
anyio:一个用于编写异步代码的库,支持多种异步框架。
asttokens:用于在 Python AST (抽象语法树) 中保留源代码位置信息的库。
async-timeout:一个用于异步代码中的超时处理的库。
attrs:一个用于定义类属性的库,提供了一种简化和自动化类属性定义的方法。
backcall:一个用于回调函数管理的库,用于支持交互式计算环境中的回调。
certifi:一个提供根证书集合的库,用于验证 SSL/TLS 连接。
charset-normalizer:一个字符集规范化库,用于处理不同字符集编码之间的转换。
colorama:一个用于在终端中添加彩色文本和样式的库。
comm:一个用于通信和消息传递的库,支持不同的通信协议。
contourpy:一个用于计算和绘制等高线图的库。
cycler:一个用于生成循环器的库,用于在可视化中循环使用颜色和样式。
dataclasses-json:一个用于序列化和反序列化 Python 数据类的库。
debugpy:一个用于远程调试 Python 代码的库。
decorator:一个用于装饰器模式的库,用于修改函数或类的行为。
et-xmlfile:一个用于读写 Excel XML 文件的库。
exceptiongroup:一个用于异常处理和组织的库,用于更好地管理异常流程。
executing:一个用于跟踪和执行源代码的库,用于调试和分析代码执行路径。
fonttools:一个用于操作字体文件的库,用于处理和修改字体数据。
frozenlist:一个用于创建不可变列表的库,提供了一种不可变数据结构的实现。
greenlet:一个用于协程的库,提供了轻量级的协程实现。
idna:一个用于国际化域名 (IDN) 的处理库,用于处理域名的编码和解码。
ipykernel:Jupyter 内核的实现,用于在 Jupyter 环境中运行 Python 代码。
ipython:一个交互式 Python 解释器,提供了增强的交互式开发环境。
jedi:一个用于自动补全和代码导航的库,用于提升 Python 编辑器的功能。
joblib:一个用于将 Python 函数序列化和缓存的库,用于加速函数的重复调用。
jsonpatch:一个用于创建和应用 JSON Patch 的库,用于对 JSON 数据进行增量更新。
jsonpointer:一个用于解析和操作 JSON Pointer 的库,用于在 JSON 数据中定位特定元素。
jupyter_client: Jupyter 客户端是 Jupyter 笔记本的一部分,它提供了与 Jupyter 内核进行通信的功能,允许在不同的编程语言中执行代码并与笔记本进行交互。
jupyter_core: Jupyter 核心是 Jupyter 项目的核心库,提供了一些共享功能和配置,例如管理配置文件、路径和启动脚本等。
kiwisolver: Kiwi Solver 是一个用于解决凸优化问题的库,常用于数学绘图库(如 matplotlib)中的图形布局和约束求解。
langchain: Langchain 是一个用于编写区块链和智能合约的开发框架。
langchain-community: Langchain Community 是 Langchain 区块链框架的社区版本,提供了一些社区贡献的功能和改进。
langchain-core: Langchain Core 是 Langchain 区块链框架的核心组件,提供了核心的区块链功能和智能合约的执行环境。langsmith
marshmallow: Marshmallow 是一个用于序列化和反序列化数据的库,常用于将复杂的数据结构转换为 JSON 或其他格式。
matplotlib: Matplotlib 是一个用于绘制数据可视化图表的库,提供了广泛的绘图功能,包括折线图、散点图、柱状图等。
matplotlib-inline: Matplotlib Inline 是一个 Jupyter 笔记本扩展,用于在 Jupyter 笔记本中直接显示 Matplotlib 图表,而无需使用额外的窗口。
multidict: Multidict 是一个用于处理多值字典的库,提供了一些方便的方法来操作和处理具有多个值的字典。
mypy-extensions: Mypy Extensions 是一个用于支持类型提示的库,提供了一些额外的类型注解和类型定义的工具。
nest-asyncio: Nest Asyncio 是一个用于在异步代码中嵌套使用 asyncio 事件循环的库,解决了在某些情况下不能嵌套使用 asyncio 的限制。
numpy: NumPy 是一个用于科学计算的基础库,提供了高性能的多维数组对象和各种数学函数,是许多科学计算和数据处理库的基础。
openpyxl: Openpyxl 是一个用于读写 Excel 文件的库,可以处理 Excel 文件的各种操作,如读取、写入、修改和创建 Excel 文件。
packaging: Packaging 是一个用于 Python 包管理的库,提供了一些工具和函数来处理包的安装、构建和发布。
pandas: Pandas 是一个用于数据分析和处理的强大库,提供了高性能的数据结构和数据分析工具,可以处理和分析结构化数据。
parso: Parso 是一个用于解析 Python 代码的库,提供了对 Python 代码进行语法分析和语义分析的功能,常用于代码编辑器和 IDE 中的代码分析和自动补全。
pickleshare: Pickleshare 是一个用于在 Python 程序之间共享变量和数据的库,它使用 pickle 格式来序列化和反序列化数据。
Pillow: Pillow 是一个用于图像处理的库,提供了许多图像处理功能,如图像打开、保存、裁剪、调整大小、滤镜等。
pip: Pip 是 Python 的包管理工具,用于安装、卸载、升级和管理 Python 包和依赖项。它是 Python 社区中最常用的包管理工具之一。
platformdirs: Platformdirs 是一个用于管理特定平台上应用程序数据目录的库,它提供了一些函数和方法来确定应用程序数据的存储位置。
prompt-toolkit: Prompt Toolkit 是一个用于构建交互式命令行界面的库,提供了丰富的功能和工具,如自动完成、语法高亮、多行输入等。
psutil: Psutil 是一个跨平台的库,用于获取系统信息和进程管理,提供了许多函数和方法来获取 CPU、内存、磁盘、网络等系统资源的使用情况。
pure-eval: Pure-Eval 是一个用于在 Python 中执行代码的库,可以安全地执行用户提供的代码,并提供了一些安全措施来防止恶意代码的执行。
pydantic: Pydantic 是一个用于数据验证和解析的库,它提供了用于定义数据模型和进行数据验证的工具,常用于处理输入数据的校验和转换。
pydantic_core: Pydantic Core 是 Pydantic 库的核心组件,提供了底层的数据验证和解析功能,是 Pydantic 的基础。
Pygments: Pygments 是一个用于语法高亮显示的库,可以对各种编程语言的代码进行高亮显示,支持多种输出格式。
pyparsing: Pyparsing 是一个用于解析结构化文本的库,提供了一些工具和函数来定义和解析文本的语法结构。
python-dateutil: Python-Dateutil 是一个用于处理日期和时间的库,提供了一些方便的函数和方法来解析、格式化和操作日期时间对象。
pytz: Pytz 是一个用于处理时区信息的库,提供了时区转换和时区信息获取的功能。
pywin32: Pywin32 是一个用于访问 Windows API 的库,提供了一系列函数和方法来与 Windows 系统进行交互和操作。
PyYAML: PyYAML 是一个用于解析和生成 YAML 格式数据的库,提供了一些函数和方法来读取和写入 YAML 文件。
pyzmq: Pyzmq 是一个 ZeroMQ(消息队列)的 Python 绑定库,提供了一些函数和方法来实现分布式计算和消息传递。
requests: Requests 是一个用于发送 HTTP 请求的库,提供了一种简洁而友好的方式来发送 HTTP 请求并处理响应。
scikit-learn: Scikit-Learn 是一个用于机器学习的库,提供了各种机器学习算法和工具,用于数据预处理、特征工程、模型训练和评估等任务。
scipy: Scipy 是一个科学计算库,提供了许多数学、科学和工程计算的函数和工具,包括数值计算、优化、信号处理、图像处理等领域。
setuptools: Setuptools 是一个用于打包和分发 Python 模块的库,提供了一些工具和函数来构建、安装和发布 Python 包。
six: Six 是一个用于在 Python 2 和 Python 3 之间提供兼容性的库,可以帮助开发人员编写兼容性更好的代码。
sklearn: Sklearn 是 Scikit-Learn 库的简称,用于机器学习和数据挖掘任务。
sniffio: Sniffio 是一个异步 I/O 库,提供了一些工具和函数来处理异步 I/O 操作,如事件循环、任务调度等。
SQLAlchemy: SQLAlchemy 是一个 Python 的 SQL 工具和对象关系映射 (ORM) 库,提供了一种在 Python 中操作数据库的高级方式。
stack-data: Stack-Data 是一个用于处理栈数据结构的库,提供了一些工具和函数来实现栈的基本操作,如入栈、出栈、查看栈顶元素等。
tenacity: Tenacity 是一个用于实现容错和重试逻辑的库,提供了一些装饰器和函数来处理错误和异常情况,并进行适当的重试。
threadpoolctl: Threadpoolctl 是一个用于管理线程池的库,提供了一些函数和方法来控制和管理线程池的行为,如线程数量、任务调度等。
tornado: Tornado 是一个用于构建异步网络应用的库,提供了一种高性能的非阻塞 I/O 模型,适用于构建高并发的网络应用程序。
traitlets: Traitlets 是一个用于创建类型安全的属性和配置的库,提供了一些工具和装饰器来定义和验证属性的类型和取值范围。
typing_extensions: Typing Extensions 是一个用于支持类型提示的库,提供了一些额外的类型注解和类型定义的工具。
typing-inspect: Typing Inspect 是一个用于检查和操作类型提示的库,提供了一些工具和函数来检查类型提示的信息和结构。
tzdata: Tzdata 是一个用于处理时区数据的库,提供了一些函数和方法来获取和操作世界各地的时区信息。
urllib3: Urllib3 是一个用于发送 HTTP 请求的库,提供了一些高级功能和工具,如连接池管理、HTTPS 支持等。
wcwidth: Wcwidth 是一个用于计算 Unicode 字符的显示宽度的库,提供了一些函数和方法来计算字符在终端中的宽度。
yarl: Yarl 是一个用于处理 URL 的库,提供了一些函数和方法来解析、构建和处理 URL 地址。