Skip to main content
Open on GitHub

如何从模板发布集成包

danger

本指南正在编写中。

首先,复制这个模板仓库: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/ # folder containing your package
...
tests/
...
docs/ # bootstrapped docs notebooks, must be moved to /docs in monorepo root
...
scripts/ # scripts for CI
...
LICENSE
README.md # fill out with information about your package
Makefile # default commands for CI
pyproject.toml # package metadata, mostly managed by Poetry
poetry.lock # package lockfile, managed by Poetry
.gitignore

实现你的包

首先,添加您的包所需的任何依赖项,例如您公司的SDK:

poetry add parrot-link-sdk

如果你需要为类型检查单独添加依赖项,你可以使用以下命令将它们添加到typing组中:

poetry add --group typing types-parrot-link-sdk

然后,在libs/partners/parrot-link/langchain_parrot_link中实现你的包。

默认情况下,这将包括Chat Model、LLM和/或Vector Store的存根。你应该删除任何你不会使用的文件,并将它们从__init__.py中移除。

编写单元和集成测试

一些基本测试在tests/目录中提供。您应该添加更多测试以覆盖您的包的功能。

有关运行和实施测试的信息,请参阅测试指南

编写文档

文档是从docs/目录中的Jupyter笔记本生成的。你应该将带有示例的笔记本放在monorepo根目录中的相关docs/docs/integrations目录中。

(如有必要)弃用社区集成

注意:只有在将现有的社区集成迁移到合作伙伴包中时,才需要这样做。如果您集成的组件是LangChain的全新组件(即尚未在community包中),则可以跳过此步骤。

假设我们将ChatParrotLink聊天模型从社区包迁移到了合作伙伴包。我们需要在社区包中弃用旧模型。

我们将通过在旧模型中添加一个@deprecated装饰器来实现这一点,如下所示,在libs/community/langchain_community/chat_models/parrot_link.py中。

在我们做出更改之前,我们的聊天模型可能看起来像这样:

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):
...
API Reference:deprecated

你应该为你迁移到合作伙伴包的每个组件都这样做。

额外步骤

贡献者步骤:

  • .github/workflows/_integration_test.yml中添加手动集成工作流的秘密名称
  • 将密钥添加到发布工作流中(用于预发布测试)在 .github/workflows/_release.yml
  • 设置 pypi 和测试 pypi 项目
  • 将凭证密钥添加到Github Actions
  • 将包添加到conda-forge

这个页面有帮助吗?