如何從範本發布整合套件
本指南仍在撰寫中。
首先,複製此範本儲存庫: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
中實作您的套件。
預設情況下,這將包含聊天模型、LLM 和/或向量儲存的存根。您應該刪除任何您不會使用的檔案,並從 __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):
...
您應該為每個要遷移到合作夥伴套件的組件執行此操作。
其他步驟
貢獻者步驟
- 將密鑰名稱新增至
.github/workflows/_integration_test.yml
中的手動整合工作流程 - 將密鑰新增至
.github/workflows/_release.yml
中的發布工作流程 (用於預發布測試) - 設定 pypi 和 test pypi 專案
- 將憑證密鑰新增至 Github Actions
- 將套件新增至 conda-forge