Skip to main content

LangChain v0.2

LangChain v0.2于2024年5月发布。此版本包括一系列重大变更和废弃功能。本文档包含了升级到0.2.x版本的指南。

迁移

本文档将帮助您将您的代码升级到LangChain 0.2.x.版本。为了进行迁移,我们首先建议您采取以下步骤:

  1. 安装langchain-core、langchain的0.2.x版本,并升级您可能使用的其他软件包的最新版本(例如langgraph、langchain-community、langchain-openai等)。
  2. 验证您的代码是否能够正常运行新软件包(例如,单元测试是否通过)。
  3. 安装最新版本的langchain-cli,并使用该工具将您的代码中的旧导入替换为新导入(请参阅下文的说明)。
  4. 手动解决任何剩余的废弃警告。
  5. 重新运行单元测试。

升级到新的导入

我们创建了一个工具来帮助迁移您的代码。该工具目前仍处于测试版,可能无法覆盖所有情况,但我们希望它能帮助您更快地迁移您的代码。 迁移脚本有以下限制:

  1. 它仅限于帮助用户从旧导入迁移到新导入。它无法处理其他废弃功能。

  2. 它无法处理涉及as的导入。

  3. 新导入始终放置在全局范围内,即使被替换的旧导入位于某些局部范围内(例如函数体)。

  4. 它可能会错过一些已废弃的导入。 以下是迁移脚本可以帮助自动应用的导入更改的示例:

从软件包到软件包废弃导入新导入
langchainlangchain-communityfrom langchain.vectorstores import InMemoryVectorStorefrom langchain_community.vectorstores import InMemoryVectorStore
langchain-communitylangchain_openaifrom langchain_community.chat_models import ChatOpenAIfrom langchain_openai import ChatOpenAI
langchain-communitylangchain-corefrom langchain_community.document_loaders import Blobfrom langchain_core.document_loaders import Blob
langchainlangchain-corefrom langchain.schema.document import Documentfrom langchain_core.documents import Document
langchainlangchain-text-splittersfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain_text_splitters import RecursiveCharacterTextSplitter

安装

pip install langchain-cli
langchain-cli --version # <-- 确保版本至少为0.0.22

使用

鉴于迁移脚本并非完美无缺,您应确保首先备份您的代码(例如,使用git等版本控制工具)。 您需要运行迁移脚本两次,因为它每次只应用一个导入替换。 例如,假设您的代码仍然使用from langchain.chat_models import ChatOpenAI: 第一次运行后,您将得到:from langchain_community.chat_models import ChatOpenAI 第二次运行后,您将得到:from langchain_openai import ChatOpenAI

# 第一次运行
# 将替换 from langchain.chat_models import ChatOpenAI
langchain-cli migrate --diff [代码路径] # 预览
langchain-cli migrate [代码路径] # 应用
# 第二次运行以应用更多的导入替换
langchain-cli migrate --diff [代码路径] # 预览
langchain-cli migrate [代码路径] # 应用

其他选项

# 查看帮助菜单
langchain-cli migrate --help
# 预览更改但不应用
langchain-cli migrate --diff [代码路径]
# 在包括ipython笔记本在内的代码上运行
# 应用除了从langchain到langchain-core的所有导入更新
langchain-cli migrate --disable langchain_to_core --include-ipynb [代码路径]

Was this page helpful?


You can leave detailed feedback on GitHub.