弃用和破坏性更改
此代码包含 langchain 和 langchain-core 包中的弃用和移除内容。
此处未列出新功能和改进。有关此版本中新增内容的概要,请参阅 概览。
重大变更
从版本 0.2.0 开始,langchain 必须与集成无关。这意味着 langchain 中的代码默认不应实例化任何特定的聊天模型、LLM、嵌入模型、向量存储等;相反,用户必须明确指定这些内容。
以下函数和类需要将一个明确的大型语言模型作为参数传入:
langchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreToolkitlangchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreRouterToolkitlangchain.chains.openai_functions.get_openapi_chainlangchain.chains.router.MultiRetrievalQAChain.from_retrieverslangchain.indexes.VectorStoreIndexWrapper.querylangchain.indexes.VectorStoreIndexWrapper.query_with_sourceslangchain.indexes.VectorStoreIndexWrapper.aquery_with_sourceslangchain.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_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 方法。