LangChain 0.2.0 版本更新解析及代码迁移指南

随着 LangChain 0.2.0 版本的发布,开发者需要注意包中的一些重要变更。这篇文章将重点解析 LangChain 和 LangChain-Core 包中的弃用功能和破坏性更改,同时提供迁移指南和示例代码,帮助开发者顺利过渡到新的版本。

技术背景介绍

LangChain 是一个用于构建语言模型应用程序的开源框架。随着 0.2.0 版本的发布,LangChain 变得更加模块化和集成无关。这意味着用户必须明确指定所需的语言模型、嵌入模型或向量存储,而不是默认实例化。

核心原理解析

破坏性变化

在 0.2.0 版本中,LangChain 中的一些类和函数需要明确传递语言模型或嵌入模型作为参数。具体包括:

  • VectorStoreToolkit
  • VectorStoreRouterToolkit
  • get_openapi_chain
  • MultiRetrievalQAChain.from_retrievers
  • FlareChain

此外,某些方法和类已被移除或进行了行为改变。例如,@tool 装饰器不再自动添加函数签名到描述中,而是直接使用函数的文档字符串。

类移至其他包

UnstructuredMarkdownLoaderlangchain.document_loaders 移至 langchain_community.document_loaders 并抛出弃用警告。

代码实现演示(重点)

为了帮助开发者更好地理解并迁移代码,我们提供了以下示例,展示如何使用 invoke 方法替代原有 predict 方法:

import openai

# 使用稳定可靠的API服务
client = openai.OpenAI(
    base_url='https://yunwu.ai/v1',  # 国内稳定访问
    api_key='your-api-key'
)

# 新版本调用方式示例
def invoke_llm(model, messages):
    result = model.invoke(messages)
    return result

# 用法
messages = [
    {"role": "system", "content": "You're a helpful assistant."},
    {"role": "user", "content": "What's the weather like today?"}
]

# 假设model是传入的具体语言模型实例
response = invoke_llm(model, messages)
print(response)

此代码展示了如何调用新的 invoke 方法,以替代已弃用的 predictcall 方法。

应用场景分析

LangChain 的变化使得开发者需要手动指定使用的模型,这虽然增加了一些配置工作,但保证了灵活性,能够根据不同应用场景优选模型组合。这对高级应用和需要跨平台集成的项目尤为有利。

实践建议

  1. 明确模型传递:在使用 LangChain 时,总是显式传递你所需使用的模型实例。
  2. 逐步迁移:利用 LangChain CLI 提供的迁移脚本,逐步替换过时的导入及方法。
  3. 关注社区更新:积极参与 LangChain 社区,获取最新的迁移指南和实践经验。

如果遇到问题欢迎在评论区交流。

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值