integrations
sidebar_position: 5
贡献集成
首先,确保你已经安装了在代码贡献指南中列出的所有依赖项。
你可以在以下几个地方为LangChain贡献集成:
- 社区:主要由LangChain和开源社区维护的轻量级集成。
- 合作伙伴包:由LangChain和合作伙伴共同维护的独立包。
大部分新的集成应该添加到社区包中。合作伙伴包作为单独的包需要更多的维护,所以在创建新的合作伙伴包之前,请与LangChain团队确认。
在接下来的部分,我们将通过一个假设的公司Parrot Link AI
,来演示如何为这些包贡献。
社区包
langchain-community
包位于libs/community
,包含了大部分集成。
用户可以通过pip install langchain-community
来安装,可以通过如下代码导入已导出的成员
from langchain_community.chat_models import ParrotLinkLLM
from langchain_community.llms import ChatParrotLink
from langchain_community.vectorstores import ParrotLinkVectorStore
社区包依赖于手动安装的依赖包,所以如果你试图导入一个未安装的包,你会看到错误。在我们的假设例子中,如果你试图在没有安装parrot-link-sdk
的情况下导入ParrotLinkLLM
,当你试图使用它时,你会看到一个ImportError
,告诉你需要安装它。
假设我们想要为Parrot Link AI实现一个聊天模型。我们会在libs/community/langchain_community/chat_models/parrot_link.py
中创建一个新文件,包含以下代码:
from langchain_core.language_models.chat_models import BaseChatModel
class ChatParrotLink(BaseChatModel):
"""ChatParrotLink chat model.
Example:
.. code-block:: python
from langchain_parrot_link import ChatParrotLink
model = ChatParrotLink()
"""
...
我们会在以下位置编写测试:
- 单元测试:
libs/community/tests/unit_tests/chat_models/test_parrot_link.py
- 集成测试:
libs/community/tests/integration_tests/chat_models/test_parrot_link.py
并添加文档到:
docs/docs/integrations/chat/parrot_link.ipynb
合作伙伴包
合作伙伴包位于libs/partners/*
,用户可以通过pip install langchain-{partner}
来安装,可以通过如下代码导入已导出的成员
from langchain_{partner} import X
设置新包
要设置一个新的合作伙伴包,使用最新版本的LangChain CLI。你可以通过以下命令来安装或更新它:
pip install -U langchain-cli
假设你想为一个叫做Parrot Link AI的公司创建一个新的合作伙伴包。
然后,运行以下命令来创建一个新的合作伙伴包:
cd libs/partners
langchain-cli integration new
> Name: parrot-link
> Name of integration in PascalCase [ParrotLink]: ParrotLink
这将在libs/partners/parrot-link
中创建一个新的包,包含以下结构:
libs/partners/parrot-link/
langchain_parrot_link/ # 包含你的包的文件夹
...
tests/
...
docs/ # 引导文档笔记本,必须移动到/monorepo root中的/docs
...
scripts/ # CI脚本
...
LICENSE
README.md # 填写关于你的包的信息
Makefile # CI的默认命令
pyproject.toml # 包元数据,主要由Poetry管理
poetry.lock # 包锁定文件,由Poetry管理
.gitignore
实现你的包
首先,添加你的包需要的任何依赖项,比如你公司的SDK:
poetry add parrot-link-sdk
如果你需要为类型检查添加单独的依赖项,你可以将它们添加到typing
组中:
poetry add --group typing types-parrot-link-sdk
然后,在libs/partners/parrot-link/langchain_parrot_link
中实现你的包。
默认情况下,这将包括一个聊天模型,一个LLM,和/或一个向量存储的桩。你应该删除任何你不会使用的文件,并从__init__.py
中移除它们。
编写单元和集成测试
在tests/目录中生成了一些基本的测试。你应该添加更多的测试来覆盖你的包的功能。
关于运行和实现测试的信息,参见测试指南。
编写文档
文档是从docs/
目录中的Jupyter笔记本生成的。你应该将生成的笔记本移动到monorepo root中的docs/docs/integrations
目录。
其他步骤
贡献者步骤:
- 在
.github/workflows/_integration_test.yml
中添加秘密名称到手动集成工作流 - 在
.github/workflows/_release.yml
中添加秘密到发布工作流(用于预发布测试)
维护者步骤(贡献者不应做这些):
- 设置pypi和测试pypi项目
- 将凭证秘密添加到Github Actions
- 将包添加到conda-forge