弃用和重大更改
此代码包含 langchain
和 langchain-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
以下类现在需要传递显式 Embedding 模型作为参数
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
),我们将继续支持 0.4 版本之前的 langchain
中的导入。
但是,我们建议用户不要依赖这些导入,而是迁移到新的导入。为了帮助完成此过程,我们正在通过 LangChain CLI 发布迁移脚本。有关更多说明,请参阅迁移指南。
目标移除的代码
有更好的替代方案可用的代码,最终将被移除,因此只有一种方法可以做事。(例如,ChatModels 中的 predict_messages
方法已被弃用,取而代之的是 invoke
)。
astream events V1
如果您正在使用 astream_events
,请查看如何迁移到 astream events v2。
langchain_core
try_load_from_hub
在模块:utils.loading
弃用:0.1.30 移除:0.3.0
替代方案:使用 hwchase17/langchain-hub repo 获取提示已弃用。请改用 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 等。
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_retriever 与 create_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 方法。