跳到主要内容
Open on GitHub

弃用和重大更改

此代码包含 langchainlangchain-core 包中的弃用和移除列表。

此处未列出新功能和改进。有关此版本中新增内容的摘要,请参阅概述

重大更改

自 0.2.0 版本起,langchain 被要求与集成无关。这意味着 langchain 中的代码默认不应实例化任何特定的聊天模型、LLM、嵌入模型、向量存储等;相反,用户将被要求明确指定这些。

以下函数和类需要将显式 LLM 作为参数传递

  • langchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreToolkit
  • langchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreRouterToolkit
  • langchain.chains.openai_functions.get_openapi_chain
  • langchain.chains.router.MultiRetrievalQAChain.from_retrievers
  • langchain.indexes.VectorStoreIndexWrapper.query
  • langchain.indexes.VectorStoreIndexWrapper.query_with_sources
  • langchain.indexes.VectorStoreIndexWrapper.aquery_with_sources
  • langchain.chains.flare.FlareChain

以下类现在需要将显式嵌入模型作为参数传递

  • langchain.indexes.VectostoreIndexCreator

以下代码已被移除

  • langchain.natbot.NatBotChain.from_default 已被移除,推荐使用 from_llm 类方法。

以下代码的行为已更改

@tool 装饰器

@tool 装饰器现在将函数文档字符串指定为工具描述。以前,@tool 装饰器用于预置函数签名。

0.2.0 之前

@tool
def my_tool(x: str) -> str:
"""Some description."""
return "something"

print(my_tool.description)

将导致:my_tool: (x: str) -> str - Some description.

自 0.2.0 起

将导致:Some description.

已移至其他包的代码

langchain 移至另一个包(例如 langchain-community)的代码

如果您尝试从 langchain 导入,导入仍将继续工作,但会引发弃用警告。该警告将提供替代的导入语句。

python -c "from langchain.document_loaders.markdown import UnstructuredMarkdownLoader"
LangChainDeprecationWarning: Importing UnstructuredMarkdownLoader from langchain.document_loaders is deprecated. Please replace deprecated imports:

>> from langchain.document_loaders import UnstructuredMarkdownLoader

with new imports of:

>> from langchain_community.document_loaders import UnstructuredMarkdownLoader

只要相关代码所在的包已安装(例如,只要 langchain_community 已安装),我们将继续支持 langchain 中的导入,直到 0.4 版本。(例如,只要 langchain_community 已安装。)

但是,我们建议用户不要依赖这些导入,而是迁移到新的导入。为了帮助完成此过程,我们正在通过 LangChain CLI 发布迁移脚本。有关更多说明,请参阅迁移指南。

计划删除的代码

有更好替代方案的代码最终将被删除,因此只有一种方法可以完成任务。(例如,ChatModels 中的 predict_messages 方法已被弃用,取而代之的是 invoke)。

astream 事件 V1

如果您正在使用 astream_events,请查看如何迁移到 astream 事件 v2

langchain_core

try_load_from_hub

在模块中:utils.loading 弃用:0.1.30 删除:0.3.0

替代方案:使用 hwchase17/langchain-hub 仓库获取提示已被弃用。请改用 https://smith.langchain.com/hub

BaseLanguageModel.predict

在模块中:language_models.base 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseLanguageModel.predict_messages

在模块中:language_models.base 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseLanguageModel.apredict

在模块中:language_models.base 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

BaseLanguageModel.apredict_messages

在模块中:language_models.base 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

RunTypeEnum

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案:使用字符串代替。

TracerSessionV1Base

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案

TracerSessionV1Create

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案

TracerSessionV1

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案

TracerSessionBase

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案

TracerSession

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案

BaseRun

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案:Run

LLMRun

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案:Run

ChainRun

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案:Run

ToolRun

在模块中:tracers.schemas 弃用:0.1.0 删除:0.3.0

替代方案:Run

BaseChatModel.call

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseChatModel.call_as_llm

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseChatModel.predict

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseChatModel.predict_messages

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseChatModel.apredict

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

BaseChatModel.apredict_messages

在模块中:language_models.chat_models 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

BaseLLM.call

在模块中:language_models.llms 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseLLM.predict

在模块中:language_models.llms 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseLLM.predict_messages

在模块中:language_models.llms 弃用:0.1.7 删除:0.3.0

替代方案:invoke

BaseLLM.apredict

在模块中:language_models.llms 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

BaseLLM.apredict_messages

在模块中:language_models.llms 弃用:0.1.7 删除:0.3.0

替代方案:ainvoke

BaseRetriever.get_relevant_documents

在模块中:retrievers 弃用:0.1.46 删除:0.3.0

替代方案:invoke

BaseRetriever.aget_relevant_documents

在模块中:retrievers 弃用:0.1.46 删除:0.3.0

替代方案:ainvoke

ChatPromptTemplate.from_role_strings

在模块中:prompts.chat 弃用:0.0.1 删除

替代方案:from_messages 类方法

ChatPromptTemplate.from_strings

在模块中:prompts.chat 弃用:0.0.1 删除

替代方案:from_messages 类方法

BaseTool.call

在模块中:tools 弃用:0.1.47 删除:0.3.0

替代方案:invoke

convert_pydantic_to_openai_function

在模块中:utils.function_calling 弃用:0.1.16 删除:0.3.0

替代方案:langchain_core.utils.function_calling.convert_to_openai_function()

convert_pydantic_to_openai_tool

在模块中:utils.function_calling 弃用:0.1.16 删除:0.3.0

替代方案:langchain_core.utils.function_calling.convert_to_openai_tool()

convert_python_function_to_openai_function

在模块中:utils.function_calling 弃用:0.1.16 删除:0.3.0

替代方案:langchain_core.utils.function_calling.convert_to_openai_function()

format_tool_to_openai_function

在模块中:utils.function_calling 弃用:0.1.16 删除:0.3.0

替代方案:langchain_core.utils.function_calling.convert_to_openai_function()

format_tool_to_openai_tool

在模块中:utils.function_calling 弃用:0.1.16 删除:0.3.0

替代方案:langchain_core.utils.function_calling.convert_to_openai_tool()

langchain

AgentType

在模块中:agents.agent_types 弃用:0.1.0 删除:0.3.0

替代方案:使用 LangGraph 或新的代理构造方法,如 create_react_agent、create_json_agent、create_structured_chat_agent 等。

Chain.call

在模块中:chains.base 弃用:0.1.0 删除:0.3.0

替代方案:invoke

Chain.acall

在模块中:chains.base 弃用:0.1.0 删除:0.3.0

替代方案:ainvoke

Chain.run

在模块中:chains.base 弃用:0.1.0 删除:0.3.0

替代方案:invoke

Chain.arun

在模块中:chains.base 弃用:0.1.0 删除:0.3.0

替代方案:ainvoke

Chain.apply

在模块中:chains.base 弃用:0.1.0 删除:0.3.0

替代方案:batch

LLMChain

在模块中:chains.llm 弃用:0.1.17 删除:0.3.0

替代方案:RunnableSequence,例如 prompt | llm

迁移指南包含并排比较。

LLMSingleActionAgent

在模块中:agents.agent 弃用:0.1.0 删除:0.3.0

替代方案:使用 LangGraph 或新的代理构造方法,如 create_react_agent、create_json_agent、create_structured_chat_agent 等。

代理

在模块中:agents.agent 弃用:0.1.0 删除:0.3.0

替代方案:使用 LangGraph 或新的代理构造方法,如 create_react_agent、create_json_agent、create_structured_chat_agent 等。

OpenAIFunctionsAgent

在模块中:agents.openai_functions_agent.base 弃用:0.1.0 删除:0.3.0

替代方案:create_openai_functions_agent

ZeroShotAgent

在模块中:agents.mrkl.base 弃用:0.1.0 删除:0.3.0

替代方案:create_react_agent

MRKLChain

在模块中:agents.mrkl.base 弃用:0.1.0 删除:0.3.0

替代方案

ConversationalAgent

在模块中:agents.conversational.base 弃用:0.1.0 删除:0.3.0

替代方案:create_react_agent

ConversationalChatAgent

在模块中:agents.conversational_chat.base 弃用:0.1.0 删除:0.3.0

替代方案:create_json_chat_agent

ChatAgent

在模块中:agents.chat.base 弃用:0.1.0 删除:0.3.0

替代方案:create_react_agent

OpenAIMultiFunctionsAgent

在模块中:agents.openai_functions_multi_agent.base 弃用:0.1.0 删除:0.3.0

替代方案:create_openai_tools_agent

ReActDocstoreAgent

在模块中:agents.react.base 弃用:0.1.0 删除:0.3.0

替代方案

DocstoreExplorer

在模块中:agents.react.base 弃用:0.1.0 删除:0.3.0

替代方案

ReActTextWorldAgent

在模块中:agents.react.base 弃用:0.1.0 删除:0.3.0

替代方案

ReActChain

在模块中:agents.react.base 弃用:0.1.0 删除:0.3.0

替代方案

SelfAskWithSearchAgent

在模块中:agents.self_ask_with_search.base 弃用:0.1.0 删除:0.3.0

替代方案:create_self_ask_with_search

SelfAskWithSearchChain

在模块中:agents.self_ask_with_search.base 弃用:0.1.0 删除:0.3.0

替代方案

StructuredChatAgent

在模块中:agents.structured_chat.base 弃用:0.1.0 删除:0.3.0

替代方案:create_structured_chat_agent

RetrievalQA

在模块中:chains.retrieval_qa.base 弃用:0.1.17 删除:0.3.0

替代方案:create_retrieval_chain迁移指南包含并排比较。

load_agent_from_config

在模块中:agents.loading 弃用:0.1.0 删除:0.3.0

替代方案

load_agent

在模块中:agents.loading 弃用:0.1.0 删除:0.3.0

替代方案

initialize_agent

在模块中:agents.initialize 弃用:0.1.0 删除:0.3.0

替代方案:使用 LangGraph 或新的代理构造方法,如 create_react_agent、create_json_agent、create_structured_chat_agent 等。

XMLAgent

在模块中:agents.xml.base 弃用:0.1.0 删除:0.3.0

替代方案:create_xml_agent

CohereRerank

在模块中:retrievers.document_compressors.cohere_rerank 弃用:0.0.30 删除:0.3.0

替代方案:langchain_cohere.CohereRerank

ConversationalRetrievalChain

在模块中:chains.conversational_retrieval.base 弃用:0.1.17 删除:0.3.0

替代方案:create_history_aware_retrievercreate_retrieval_chain 结合使用(参见文档字符串中的示例)此迁移指南包含并排比较。

create_extraction_chain_pydantic

在模块中:chains.openai_tools.extraction 弃用:0.1.14 删除:0.3.0

替代方案:支持工具调用的聊天模型上的 with_structured_output 方法。

create_openai_fn_runnable

在模块中:chains.structured_output.base 弃用:0.1.14 删除:0.3.0

替代方案:支持工具调用的聊天模型上的 with_structured_output 方法。

create_structured_output_runnable

在模块中:chains.structured_output.base 弃用:0.1.17 删除:0.3.0

替代方案:支持工具调用的聊天模型上的 with_structured_output 方法。

create_openai_fn_chain

在模块中:chains.openai_functions.base 弃用:0.1.1 删除:0.3.0

替代方案:create_openai_fn_runnable

create_structured_output_chain

在模块中:chains.openai_functions.base 弃用:0.1.1 删除:0.3.0

替代方案:ChatOpenAI.with_structured_output

create_extraction_chain

在模块中:chains.openai_functions.extraction 弃用:0.1.14 删除:0.3.0

替代方案:支持工具调用的聊天模型上的 with_structured_output 方法。

create_extraction_chain_pydantic

在模块中:chains.openai_functions.extraction 弃用:0.1.14 删除:0.3.0

替代方案:支持工具调用的聊天模型上的 with_structured_output 方法。