如何从模板发布集成包
本指南仍在编写中。
首先,复制此模板存储库:https://github.com/langchain-ai/integration-repo-template
在本指南中,我们将创建一个 libs/langchain-parrot-link 文件夹,模拟为一家名为“Parrot Link AI”的虚构公司创建一个合作伙伴包。
用户通过 pip install langchain-{partner} 安装包,并且可以通过类似以下的代码导入包成员:
from langchain_{partner} import X
设置新包
要设置新的合作伙伴包,请使用最新版本的 LangChain CLI。您可以使用以下命令安装或更新它:
pip install -U langchain-cli
假设您想为一家名为 Parrot Link AI 的公司创建一个新的合作伙伴包。
然后,运行以下命令创建一个新的合作伙伴包:
mkdir libs
cd libs/
langchain-cli integration new
> Name: parrot-link
> Name of integration in PascalCase [ParrotLink]: ParrotLink
这将在 libs/parrot-link 中创建一个具有以下结构的新包:
libs/parrot-link/
langchain_parrot_link/ # 包含您包的文件夹
...
tests/
...
docs/ # 引导的文档笔记本,必须移动到 monorepo 根目录下的 /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 笔记本生成的。您应该将包含示例的笔记本放在单仓库根目录的相应 docs/docs/integrations 目录中。
(如果需要) 弃用社区集成
注意:如果将现有社区集成迁移到合作伙伴包,则只需要此步骤。如果您集成的组件是 LangChain 的全新组件(即,尚未在 community 包中),则可以跳过此步骤。
我们假设我们将 ChatParrotLink 聊天模型从社区包迁移到了合作伙伴包。我们将需要弃用社区包中的旧模型。
我们将通过像下面这样在 libs/community/langchain_community/chat_models/parrot_link.py 中向旧模型添加一个 @deprecated 装饰器来实现。
在我们的更改之前,我们的聊天模型可能看起来像这样:
class ChatParrotLink(BaseChatModel):
...
在我们的更改之后,它将看起来像这样:
from langchain_core._api.deprecation import deprecated
@deprecated(
since="0.0.<next community version>",
removal="1.0.0",
alternative_import="langchain_parrot_link.ChatParrotLink"
)
class ChatParrotLink(BaseChatModel):
...
您应该为每个迁移到合作伙伴包的组件执行此操作。
额外步骤
贡献者步骤:
- 在
.github/workflows/_integration_test.yml中的手动集成工作流中添加 secret 名称 - 在发布工作流中添加 secret(用于预发布测试)在
.github/workflows/_release.yml - 设置 pypi 和 test pypi 项目
- 向 Github Actions 添加凭证 secret
- 将包添加到 conda-forge