跳到主要内容
Open on GitHub

如何从模板发布集成包

危险

本指南仍在完善中。

首先,复制此模板仓库: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 Notebook 生成的。您应该将包含示例的 Notebook 放置到单体仓库根目录中相关的 `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):
...
API 参考:deprecated

对于您要迁移到合作伙伴包的*每个*组件,都应该执行此操作。

附加步骤

贡献者步骤

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