AI大模型探索之路-应用篇9:Langchain框架LangSmith模块-AI模型监控神器

目录

前言

一、概述

二、准备工作

三、代码实践

二、监控查看

总结


前言

在经过前面多个篇章的学习后,我们已经了解到Langchain框架是一个为开发人员提供的全方位服务方案。从模型封装调用、提示词模板封装、Chain链式操作、检索增强,再到上线部署,它都提供了一站式解决方案。本章将重点讲解最后一个核心框架LangSmith,以补充完整最后的运维监控管理版块。


一、概述

Langchain框架旨在为AI开发者提供一个高效、灵活的工作环境,其中LangSmith模块扮演着至关重要的角色。作为框架中的一个核心组件,LangSmith专注于大规模语言模型(LLM)的管理、监控和维护。它不仅简化了模型的部署过程,还提供了丰富的功能,以确保模型能够在最佳状态下运行。
1) 调试
LangSmith提供了一个统一的平台,使得开发者能够快速调试新创建的链条、代理或工具集。它允许开发者可视化组件之间的关系和使用方式,这有助于识别和解决问题,尤其是在复杂的LLM应用程序中。LangSmith通过记录大模型发起的所有请求,为开发者提供了除输入输出之外的更多细节,从而使得调试过程更加高效和精确。
2) 测试:在测试方面,LangSmith能够对基于任何LLM框架构建的链条和智能代理进行测试。开发者可以在一个集成的环境中进行端到端的测试,确保各个组件能够协同工作,满足预期的功能和性能要求。
3) 评估:LangSmith还提供了评估功能,帮助开发者量化LLM应用程序的性能。通过对模型的响应和行为进行分析,开发者可以评估其准确性、可靠性和效率。
4) 监控:LangSmith的监控功能允许开发者实时跟踪LLM应用程序的运行状态。这包括监控模型的请求和响应,以及链条和代理的行为。通过持续监控,开发者可以确保应用程序的稳定性和可靠性,及时发现并解决可能出现的问题。
 

二、准备工作

1.官网注册账号

LangSmith

2.创建API KEY

3.创建项目

设置Project名称

4.使用说明

无需开发代码,只要配置好环境变量即可

LANGCHAIN_TRACING_V2=true

LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

LANGCHAIN_API_KEY="<your-api-key>"

LANGCHAIN_PROJECT="langchain-langsmith01"

三、代码实践

1.简单代码样例

编写一个简单的代码样例

from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
llm.invoke("你好!")

 2.复杂调用样例

编写一个Agent自我上网查询代码样例

from langchain import hub
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_openai import ChatOpenAI

#需要申请搜索引擎Tavily的API KEY
tools = [TavilySearchResults(max_results=1,tavily_api_key= "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")]

#拉取提示词模板
prompt = hub.pull("hwchase17/openai-tools-agent")

# 配置LLM 模型
llm = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0)

# 构建Agent
agent = create_openai_tools_agent(llm, tools, prompt)

# 创建Agent 执行器、调用执行器
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({"input": "现任美国总统的妻子的父亲是?"})

二、监控查看

1.查看监控列表

查看所有调用过的LLM清单列表

2.查看链路追踪

简单的调用,可以查看输入输出情况

复杂的调用,可以追踪查看推理调用步骤,以及每个步骤耗时情况 

通过TRACE可以看到,整个Agent执行过程,比如本样例Agent执行过程中:

1)ChatPromptTemplate拉取组装提示词3次,
2)ChatOpenAI服务调用了3次
3)tavily_search 搜索服务调用了2次,其中网络搜索耗时最长

3.查看监控面板

 可以查看LLM调用次数、追踪统计、Token消耗,延迟等

1)调用次数和成功率信息查看

2)延迟情况查看分析

3)Token消耗查看


总结

LangSmith模块是LangChain框架中的一个重要组成部分,专门用于支持生产级LLM应用程序的开发和维护。其提供的调试、测试、评估和监控功能,不仅简化了开发过程,也确保了LLM应用程序的质量和性能。通过这些功能,开发者可以更有效地构建、优化和部署基于Langchain框架的应用程序。

探索未知,分享所知;点击关注,码路同行,寻道人生!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/546241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过Transform与Animation,来探索CSS中的动态视觉效果

在 transform 和 animation 出现之前&#xff0c;前端开发者通常需要编写大量的 JavaScript 代码来实现动态效果。然而&#xff0c;这两个 CSS 属性的引入极大地简化了丰富动效和过渡效果的实现&#xff0c;从而让用户界面更加引人入胜&#xff0c;交互体验更为流畅。本文将深入…

每日OJ题_BFS解决FloodFill④_力扣130. 被围绕的区域

目录 力扣130. 被围绕的区域 解析代码 力扣130. 被围绕的区域 130. 被围绕的区域 难度 中等 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O &#xff0c;找到所有被 X 围绕的区域&#xff0c;并将这些区域里所有的 O 用 X 填充。 示例 1&#xff1a; 输入&…

【VUE】Vue3自由拖拽标签

效果&#xff1a; 代码&#xff1a; <template> <div><div v-move class"box"><label class"move">拽我</label> </div> </div> </template> <script setup lang"ts">import { ref, …

Mac电脑安装蚁剑

1&#xff1a; github 下载源码和加载器&#xff1a;https://github.com/AntSwordProjectAntSwordProject GitHubAntSwordProject has 12 repositories available. Follow their code on GitHub.https://github.com/AntSwordProject 以该图为主页面&#xff1a;antSword为源码…

MySQL 快问快答

我写这篇文章的目的只有一个&#xff1a;通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉&#xff0c;通过回答这些问题&#xff0c;让我对脑子里的MySQL知识有更深的印象&#xff0c;当什么时候我的MySQL脑图不熟的时候&#xff0c;我就可以拿这篇文章来去巩固一下&am…

OpenHarmony南向开发案例:【智能体重秤】

一、简介 本demo基于OpenHarmony3.1Beta版本开发&#xff0c;该样例能够接入数字管家应用&#xff0c;通过数字管家应用监测体重秤上报数据&#xff0c;获得当前测量到的体重&#xff0c;身高&#xff0c;并在应用端形成一段时间内记录的体重值&#xff0c;以折线图的形式表现…

创维:在博鳌论坛 叩响世界之门

出走半生&#xff0c;归来仍是少年。 2024年4月8日&#xff0c;一个离开海南近半个世纪的“少年”回到琼海博鳌&#xff0c;“下一站&#xff0c;1000亿&#xff01;”&#xff0c;他的承诺掷地有声。“1000亿”&#xff0c;意指创维集团在2025年前冲击千亿营收&#xff0c;这…

RocketMQ消息重试机制

1 生产者重试 生产者发送消息失败会重试&#xff0c;可以通过参数来设置&#xff1a; 创建producer实例设置参数&#xff1a; // 失败的情况重发3次 producer.setRetryTimesWhenSendFailed(3); // 消息在1S内没有发送成功&#xff0c;就会重试 producer.send(msg, 1000); a…

CentOS7用convert2rhel转Redhat7

CentOS 停更时间表 版本停更时间CentOS 62020/11/30CentOS 72024/6/30CentOS 82021/12/1 支持的转换路径&#xff0c;表示官方测试过 CentOS 转换 RHEL 示例 转换示例环境 本示例模拟以下环境&#xff0c;使用 RHEL 7.9 ISO 文件作为转换使用的 yum repository 源&#xff…

3A大流电输出低压差线性稳压器TO-236封装

概述 PCD3933 是一款低噪声、低压差线性稳压器 (LDO)&#xff0c;可提供 3A 输出电流&#xff0c;最大压降仅为 210mV。该器件提供两种输出电压范围。 PCD3933 的输出电压可通过外部电阻分压器在 0.5V 至 5.15V 范围内进行调节&#xff0c;同时还提供固定输出电压版本。 PCD3…

【Entity Framework】聊一聊EF中继承关系

【Entity Framework】聊一聊EF中继承关系 文章目录 【Entity Framework】聊一聊EF中继承关系一、概述二、实体类型层次结构映射三、每个层次结构一张表和鉴别器配置四、共享列五、每个类型一张表配置六、每个具体类型一张表配置七、TPC数据库架构八、总结 一、概述 Entity Fra…

Unity TMP Inputfield 输入框 框选 富文本 获取真实定位

一、带富文本标签的框选是什么 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition&#xff0c;开始选择时的光标下标和当前光标下标 对于未添加富文本标签时&#xff0c;直接通过以上两个值&#xff0c;判断一下框选方向&#xff08;前向后/后向前&…

【热门话题】PyTorch:深度学习领域的强大工具

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 PyTorch&#xff1a;深度学习领域的强大工具一、PyTorch概述二、PyTorch核心特性…

C语言洛谷题目分享(9)奇怪的电梯

目录 1.前言 2.题目&#xff1a;奇怪的电梯 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.说明 6.题解 3.小结 1.前言 哈喽大家好啊&#xff0c;前一段时间小编去备战蓝桥杯所以博客的更新就暂停了几天&#xff0c;今天继续为大家带来题解分享&#xff0c;希望大…

性能再升级!UNet+注意力机制,新SOTA分割准确率高达99%

UNet结合注意力机制能够有效提升图像分割任务的性能。 具体来说&#xff0c;通过将注意力模块集成到UNet的架构中&#xff0c;动态地重新分配网络的焦点&#xff0c;让其更集中在图像中对于分割任务关键的部分。这样UNet可以更有效地利用其跳跃连接特性&#xff0c;以精细的局…

2024-4-15-ARM作业

实现字符串数据收发函数的封装 源代码&#xff1a; main.c #include "gpio.h"#include "uart4.h"int main(){uart4_config();while (1){// char agetchar();// putchar(a1);char s[20];gets(s);puts(s);//putchar(\n);putchar(\r);}return 0;}uart4.c …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十二 简单把视频的水印去掉效果 一、简单介绍 二、简单把视频的水印去掉效果实现原理 …

MVVM架构模式

目录 MVVM 数据绑定方式 实现方式 Model View ViewModel 数据绑定方式 vue&#xff1a;&#xff1a; 数据劫持和发布-订阅模式&#xff1a; Object.defineProperty() 方法来劫持&#xff08;监控&#xff09;各属性的 getter 、setter &#xff0c;并在数据&#xff08;对…

centos7上安装python3.10

1 安装依赖 使用yum程序安装所需依赖。打开终端并运行以下命令&#xff1a; yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make zlib zlib-devel libffi-devel -y 这些依赖项是编译和安装Python 3.10所必…

结合文本的目标检测:Open-GroundingDino训练自己的数据集

1、简单介绍 Open-GroundingDino是GroundingDino的第三方实现训练流程的代码&#xff0c;因为官方GroundingDino没有提供训练代码&#xff0c;只提供了demo推理代码。 关于GroundingDino的介绍可以看论文&#xff1a;https://arxiv.org/pdf/2303.05499.pdf GroundingDino的G…