Skip to main content
Open on GitHub

弃用和破坏性更改

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

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

重大变更

从版本 0.2.0 开始,langchain 必须与集成无关。这意味着 langchain 中的代码默认不应实例化任何特定的聊天模型、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

我们将在版本 0.4 发布之前继续支持 langchain 中的导入,只要包含相关代码的包已安装即可。(例如,只要 langchain_community 已安装。)

然而,我们建议用户不要依赖这些导入语句,而是迁移到新的导入方式。为了帮助这一过程,我们通过 LangChain 命令行工具发布了迁移脚本。请参阅迁移指南以获取更多说明。

将被删除的代码

代码中已有更好的替代方案,并且最终会被移除,因此只有一种方式来完成任务。(例如,ChatModels 中的 predict_messages 方法已被弃用,以改用 invoke 方法。)

流式事件 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

替代:调用

BaseLanguageModel.predict_messages

模块: language_models.base 已弃用: 0.1.7 移除: 0.3.0

替代:调用

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

Alternative:

TracerSessionV1Create

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

TracerSessionV1

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

TracerSessionBase

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

TracerSession

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

BaseRun

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:运行

LLMRun

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:运行

ChainRun

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:运行

ToolRun

模块: tracers.schemas 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:运行

BaseChatModel.调用

模块: language_models.chat_models 已弃用: 0.1.7 移除: 0.3.0

替代:调用

BaseChatModel.call_as_llm

模块: language_models.chat_models 已弃用: 0.1.7 移除: 0.3.0

替代:调用

BaseChatModel.predict

模块: language_models.chat_models 已弃用: 0.1.7 移除: 0.3.0

替代:调用

BaseChatModel.predict_messages

模块: language_models.chat_models 已弃用: 0.1.7 移除: 0.3.0

替代:调用

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.调用

模块: language_models.llms 已弃用: 0.1.7 移除: 0.3.0

替代:调用

BaseLLM.predict

模块: language_models.llms 已弃用: 0.1.7 移除: 0.3.0

替代:调用

BaseLLM.predict_messages

模块: language_models.llms 已弃用: 0.1.7 移除: 0.3.0

替代:调用

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

替代:调用

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.调用

模块: tools 已弃用: 0.1.47 移除版本: 0.3.0

替代:调用

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 等。

链.调用

模块: chains.base 已弃用: 0.1.0 移除版本: 0.3.0

替代:调用

Chain.acall

模块: chains.base 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:ainvoke

Chain.run

模块: chains.base 已弃用: 0.1.0 移除版本: 0.3.0

替代:调用

Chain.arun

模块: chains.base 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:ainvoke

Chain.apply

模块: chains.base 已弃用: 0.1.0 移除版本: 0.3.0

替代方案:批量

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

Alternative:

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

Alternative:

DocstoreExplorer

模块: agents.react.base 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

ReActTextWorldAgent

模块: agents.react.base 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

ReActChain

模块: agents.react.base 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

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

Alternative:

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

Alternative:

load_agent

模块: agents.loading 已弃用: 0.1.0 移除版本: 0.3.0

Alternative:

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 方法。