跳至主要内容

贡献集成

首先,请确保您拥有在 贡献代码 指南中概述的所有依赖项。

您可以为 LangChain 贡献集成的几个不同位置

  • 社区:对于主要由 LangChain 和开源社区维护的轻量级集成。
  • 合作伙伴软件包:对于由 LangChain 和合作伙伴共同维护的独立软件包。

在大多数情况下,新集成应添加到社区软件包中。合作伙伴软件包需要作为单独的软件包进行更多维护,因此在创建新的合作伙伴软件包之前,请与 LangChain 团队确认。

在以下部分中,我们将逐步介绍如何从一家名为 Parrot Link AI 的假公司为每个软件包做出贡献。

社区软件包

@langchain/community 软件包位于 libs/langchain-community 中,包含大多数集成。

可以使用例如 npm install @langchain/community 进行安装,并且可以使用如下代码导入导出的成员

import { ChatParrotLink } from "@langchain/community/chat_models/parrot_link";
import { ParrotLinkLLM } from "@langchain/community/llms/parrot_link";
import { ParrotLinkVectorStore } from "@langchain/community/vectorstores/parrot_link";

@langchain/community 软件包依赖于手动安装的依赖软件包,因此如果您尝试导入未安装的软件包,将会看到错误。在我们的虚构示例中,如果您尝试导入 ParrotLinkLLM 而没有安装 parrot-link-sdk,则会看到一条错误消息,告诉您该软件包导入失败。

假设我们要为 Parrot Link AI 实现一个聊天模型。我们将在 libs/langchain-community/src/chat_models/parrot_link.ts 中创建一个新文件,其中包含以下代码

import {
SimpleChatModel,
} from "@langchain/core/language_models/chat_models";

export class ChatParrotLink extends SimpleChatModel {

...

测试位于 src/ 目录中,因此您可以将它们写入如下文件

  • 单元测试:libs/langchain-community/src/chat_models/tests/parrot_link.test.ts
  • 集成测试:libs/langchain-community/src/chat_models/tests/parrot_link.int.test.ts

单元测试不应有任何外部 API 调用或需要任何环境变量。

您应该将文档添加到

  • docs/core_docs/docs/integrations/chat/parrot_link.mdx

LangChain 仓库中的合作伙伴软件包

合作伙伴软件包可以托管在 LangChain 单一仓库中。

LangChain 仓库中的合作伙伴软件包应放置在 libs/langchain-{partner}

用户可以使用 npm install @langchain/{partner} 安装软件包,并且可以使用如下代码导入软件包成员

import { X } from "@langchain/{partner}";

设置新的软件包

要设置新的合作伙伴软件包,您可以使用 create-langchain-integration,这是一个实用程序,它将自动构建一个支持 ESM + CJS 入口点的仓库。您可以在 libs/ 文件夹中运行它

cd libs/
npx create-langchain-integration

然后,按照提示为您的软件包命名。默认软件包将包含聊天模型、LLM 和/或向量存储的存根。您应该删除任何不使用的文件并将其从 index.ts 中删除。

依赖项

如果您的软件包需要依赖项,例如您公司的 SDK,您可以照常将其添加到软件包的 package.json 文件中

npm install parrot-link-sdk

编写单元和集成测试

src/tests/ 目录中提供了一些基本测试。您应该添加更多测试以涵盖软件包的功能。

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

编写文档

文档是从 Jupyter 笔记本或 docs/ 目录中的 .mdx 文件生成的。您应该将包含示例的笔记本放置到单一仓库根目录中的相关 docs/core_docs/docs/integrations 目录中。

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

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

假设我们将 ChatParrotLink 聊天模型从社区软件包迁移到合作伙伴软件包。我们需要在社区软件包中弃用旧模型。我们可以使用 @deprecated TSDoc 注释来实现。

在更改之前,我们的聊天模型可能如下所示

class ChatParrotLink extends SimpleChatModel {
...

更改后,它将如下所示

/** @deprecated Install and import from `@langchain/parrot-link` instead. */
class ChatParrotLink extends SimpleChatModel {
...

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


此页面是否有帮助?


您还可以留下详细的反馈 在 GitHub 上.