LangChain.js 实战系列:搭配 LangSmith 实现调试、监控、测试

部署运行你感兴趣的模型镜像

📝 LangChain.js 是一个快速开发大模型应用的框架,它提供了一系列强大的功能和工具,使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。

LangSmith 是 LangChain 推出的 AI 应用调试、监控和测试平台。

LangSmith 会记录大模型发起的所有请求,除了输入输出,还能看到具体的所有细节,包括:

  1. 请求的大模型、模型名、模型参数
  2. 请求的时间、消耗的 token 数量
  3. 请求中的所有上下文消息,包括系统消息

比较亮眼的功能是,LangSmith 可以把某条请求添加进 Playground,然后直接调试修改,重放该请求:

选中某条请求,点击「Playground」:

进入 Playground 后,这条请求会包括原本的所有消息上下文、使用的模型、参数等等,我们就可以直接修改对应的提示词,点击「Start」去重放测试:

有这个重放功能,对于某些测试 case,就不需要费心先为这个 case 构建请求环境模拟,再调试提示词,直接在 Playground 就能直接调试提示词,相当方便了。

LangSmith 的集成挺简单的,只需要一个 API 和 URL 即可,我们直接进入官网:https://smith.langchain.com/

点击「Sign Up」,选择账号登录:


LangSmith 目前还处于 Beta 阶段,可以免费使用,但是会有白名单使用机制,如下就是 LangSmith 审核你的名单,还不能使用:


静候 LangSmith 的审核,或者去 LangSmith 的仓库里请求一个邀请码:
Request for Invitation Code - LangSmith

试过让已经进入 LangSmith 的朋友邀请进组织,不过不行

进入之后创建一个 API key:

然后在项目下设置这几个环境变量:

LANGCHAIN_TRACING_V2="true"
# 请求的 URL
LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
# API key
LANGCHAIN_API_KEY="YOUR_API_KEY"
# 项目名称
LANGCHAIN_PROJECT="YOUR_PROJECT_NAME"

其中 LANGCHAIN_PROJECT 可以不用设置,它会默认记录到一个叫做 default 的项目下。

设置之后,调用 LangChain 的方法:
LangChain.js 实战系列:入门介绍

发送的请求就都会记录到 LangSmith 上了:

其他的一些创建组织、创建项目等的常见功能可以自行体验,总的来说,LangSmith 目前对于开发调试一个 AI 应用来说很方便,不过这个项目属于闭源,并且会记录 API Key 一些敏感信息,因此是否使用 LangSmith 具体看自己的项目情况。

最后

推荐一些好用的资源

👉 StarFlow.tech ,一个集聊天、工作流和知识库的 AI 平台。在这里,你可以免费使用 ChatGPT3.5 和 3.5 16K,还有 GPT-4 Vision、DELL·E3、Midjourney 等多种模型可供选择。这个平台就像一个小型工作室,助力个人效率 Max!

👉 OpenAI 官方提示词指南 ,专门面向中文的提示词工程指南,该教程是 OpenAI 官方出版,主要包括了六大策略,轻松学习提示词技巧。

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

<think> 我们已知用户当前使用的langchain_core版本为1.1.0,并且遇到了`ModuleNotFoundError: No module named 'langchain_core.memory'`错误。 在langchain_core的1.1.0版本中,官方文档和代码结构显示,`langchain_core`包下并没有名为`memory`的子模块。实际上,在LangChain框架中,内存管理(如聊天历史记录)的功能通常位于`langchain.memory`或`langchain_core.messages`等模块中。 根据LangChain官方文档(截至2024年): - `langchain_core`主要包含核心接口和抽象基类,而具体的内存管理实现通常在`langchain`包中。 - 在较新的版本中,内存相关的基类可能已经移到了`langchain_core.memory`,但根据版本1.1.0,我们应检查该版本是否存在这个模块。 经过查阅,在1.1.0版本中,`langchain_core`确实没有`memory`模块。因此,出现该错误的原因是代码中尝试导入一个不存在的模块。 解决方案: 1. 检查代码中导入语句的具体用途,并替换为正确的导入路径。 2. 如果确实需要内存管理功能,应该使用`langchain`包中的相关模块,或者查看`langchain_core`中是否有替代的模块(如`langchain_core.messages`)。 可能的替代导入: - 如果代码中需要的是基类`BaseMemory`,那么在`langchain_core`中可能已经移动到了其他位置。在1.1.0版本中,`BaseMemory`实际上位于`langchain_core.memory`?但根据错误,该模块不存在。因此,我们可能需要查看官方1.1.0版本的文档。 然而,通过查看langchain-core 1.1.0的源码(在GitHub上): - 在1.1.0版本中,`langchain_core`包下确实没有`memory`子模块。 - 内存相关的基类在`langchain.schema`中(旧版)或`langchain.memory`中。 因此,我们推断用户代码中使用了错误的导入路径。 具体步骤: 步骤1:确认代码中的导入语句 用户代码中可能包含: from langchain_core.memory import BaseMemory 步骤2:修改导入语句 在LangChain的0.1.x版本(注意:用户使用的是1.1.0,这里版本号可能有混淆,但根据问题描述,我们以用户提供的版本为准)中,内存相关的基类可能被放在不同的位置。 根据LangChain 0.1.x的文档,内存基类位于`langchain.memory`中。但是,在1.x版本中,结构发生了变化。 实际上,在langchain-core 1.1.0中,我们可以从`langchain_core.messages`导入与消息相关的基类,但内存管理(如聊天历史记录)的功能仍然在`langchain`包中。 因此,建议用户检查: - 如果使用`BaseMemory`,它可能位于`langchain.memory`中,即: from langchain.memory import BaseMemory - 如果使用`ChatMessageHistory`(用于管理消息历史),则在`langchain_core`中并没有,而是位于`langchain.memory`中,或者使用`langchain_core.chat_history`中的基类(注意:在1.1.0中,`langchain_core.chat_history`模块可能存在?但实际不存在,所以还是需要安装`langchain`包)。 步骤3:安装`langchain`包 如果用户还没有安装`langchain`,则需要安装: pip install langchain 因为`langchain_core`只是一个核心抽象层,具体实现通常需要`langchain`。 步骤4:验证 修改导入语句后,重新运行代码。 如果用户确实需要使用`langchain_core`中的内存相关基类(但1.1.0版本没有),请考虑升级到更高版本的`langchain_core`(如果该模块是在后续版本中添加的)。但是,用户当前可能因项目依赖而无法升级。 因此,总结为: - 使用`langchain.memory`中的类(需要安装`langchain`包) - 或者,如果用户使用的是最新版本的LangChain(例如>=0.1.0,但注意版本号跳跃,LangChain的版本号已经进入1.x),则可能`langchain_core.memory`在更高版本中存在。但用户明确说明是1.1.0,所以建议修改导入路径。 另外,参考引用[4]中提到的环境问题,需要确认运行环境是否一致,避免本地和远程环境不一致导致的问题。 具体操作: 1. 修改导入语句: 将 `from langchain_core.memory import ...` 改为: from langchain.memory import BaseMemory # 假设需要BaseMemory 或者,如果使用的是`ChatMessageHistory`,则: from langchain.memory import ChatMessageHistory 2. 确保安装了`langchain`包: pip install langchain 3. 检查环境一致性:确保运行代码的环境就是安装了这些包的环境。 4. 如果用户因为某些原因不能安装`langchain`(例如只想用核心组件),那么可能需要寻找替代方案。但在1.1.0版本的`langchain_core`中,没有提供内存管理模块。 因此,安装`langchain`包是最直接的解决方案。 注意:在LangChain的1.x版本中,包的结构发生了变化,`langchain`包依赖于`langchain-core`和`langchain-community`等。所以,安装`langchain`包会自动安装兼容版本的`langchain-core`,但用户已经安装了1.1.0,所以应该兼容。 验证安装: pip show langchain 如果用户需要特定版本的`langchain`,可以指定: pip install langchain==1.1.0 这样保持版本一致。 总结步骤: 1. 修改代码中的导入语句,使用`langchain.memory`替代`langchain_core.memory`。 2. 安装`langchain`包(如果尚未安装)。 3. 重新运行代码。 如果问题仍然存在,请检查环境是否一致(如虚拟环境、本地与远程环境等),参考引用[4]中的环境问题。 代码示例修改前: from langchain_core.memory import BaseMemory 修改后: from langchain.memory import BaseMemory 然后,运行: pip install langchain 注意:如果用户使用的是LangChain的旧版本(比如0.0.x),那么可能需要调整导入路径,但用户已经使用了1.1.0的langchain_core,所以建议使用1.x版本的langchain。 如果用户不想安装整个`langchain`包,也可以尝试只安装`langchain-memory`(但通常没有单独的包),所以还是推荐安装`langchain`。 最后,如果用户无法修改导入路径(例如,使用的是第三方库的代码),那么可能需要联系库的维护者更新导入路径,或者自己创建一个补丁。 但是,从用户描述看,应该是用户自己的代码,所以修改导入语句是最快的方法。 相关问题: 1. 如何正确导入LangChain中的内存管理类? 2. LangChain框架中`langchain_core`和`langchain`包的区别是什么? 3. 如何解决因LangChain版本升级导致的导入错误? 4. 如何检查Python包的模块结构以确定正确的导入路径? </think> 针对 `langchain_core` 1.1.0 版本中出现的 `ModuleNotFoundError: No module named 'langchain_core.memory'` 错误,这是由于模块结构调整导致的兼容性问题。以下是具体解决方案: ### 原因分析 在 `langchain_core` 1.1.0 版本中: 1. **内存模块已迁移**:`memory` 相关功能已从 `langchain_core` 转移到 `langchain` 主包中 2. **接口变更**:`BaseMemory` 等内存类的新导入路径为 `langchain.memory` 3. **依赖关系**:必须安装 `langchain` 包才能使用内存功能[^1] ### 解决方案 #### 1. 修改导入语句(关键步骤) ```python # 原错误导入(已废弃) from langchain_core.memory import BaseMemory # ✅ 修改为以下任一正确导入方式 from langchain.memory import BaseMemory # 基础内存类 from langchain.memory import ConversationBufferMemory # 具体内存实现 ``` #### 2. 安装必要依赖 ```bash # 安装 langchain 主包(包含内存模块) pip install langchain==0.1.0 # 推荐与 langchain_core 1.1.0 兼容的版本 # 验证安装 python -c "from langchain.memory import BaseMemory; print('导入成功!')" ``` #### 3. 环境一致性检查 ```bash # 检查包版本兼容性 pip list | grep -E 'langchain|langchain-core' # 预期输出示例: # langchain 0.1.0 # langchain-core 1.1.0 ``` 若版本不匹配,使用以下命令对齐版本: ```bash pip install langchain==0.1.0 langchain-core==1.1.0 ``` #### 4. 代码适配示例 ```python from langchain.memory import ConversationBufferMemory # 创建聊天内存实例 memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True ) # 在链中使用 chain = LLMChain( llm=OpenAI(), memory=memory, prompt=prompt_template ) ``` ### 替代方案(如需坚持使用 langchain_core) 若因特殊原因必须使用 `langchain_core` 中的内存功能: 1. **降级版本**: ```bash pip install langchain-core==0.1.0 # 支持旧版内存模块 ``` 2. **使用兼容层**: ```python try: from langchain_core.memory import BaseMemory except ImportError: from langchain.memory import BaseMemory # 自动回退 ``` ### 验证步骤 1. 按上述修改导入语句 2. 确保 `langchain>=0.1.0` 已安装 3. 运行测试代码: ```python from langchain.memory import BaseMemory print("模块导入成功!") ``` > **重要提示**:LangChain 团队在 1.x 版本中重构了模块结构,这是官方预期的迁移路径[^1][^4]。若仍遇到问题,建议检查是否存在虚拟环境路径冲突(参考引用[4]的远程环境问题)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值