如何一行代码实现 OpenAI 可观测,大幅提升使用体验

news2024/11/19 6:22:10

作者|观测云 徐季秋

现在基于 OpenAI 的 Chat+ 应用井喷,但给开发者带来了两个难点,一是因为 OpenAI 基于 tokens 的计费机制导致不容易规划消费;另一是 OpenAI 提供的调用本身不稳定,很难分辨是传参错误或是访问失败。这导致许多开发者,需要在调试时一边小心翼翼地时刻关注余额,又要担心服务质量抖动,挺让人糟心。

其实,通过简单地对 OpenAI 设置些使用监测,就能大幅提升使用体验,以下用 SaaS 监控观测平台——观测云举例。

基于观测云强大的可编程机制可以轻松实现 OpenAI 可观测,记录所有请求的输入输出内容、调用请求延迟、调用成功率、以及费用详情,而完成这些功能就是几分钟动动手的事情。观测云已预置了下文用到的所有数据采集与仪表板模板,略作配置即可使用。

展示效果图

  • 仪表板视图

  • 日志查看器视图

如果已经是观测云用户,也安装过 DataFlux Func 组件,可以跳过前置准备步骤,直接从第 6 步打开采集开始;

新用户请从前置准备步骤开始操作。

前置准备

1. 在观测云官网注册账号 www.guance.com。关于注册步骤和站点选择,可参考:

在观测云注册商业版 - 观测云文档

本文使用观测云-中国区1(杭州)站点,商业版账号。直接开通商业版可获得 500 元无限制代金券,实现本文观测场景每天消费仅需几分钱,可以用几十年了。

或可以选择开通体验版,每天可免费上报 100 万条增量日志,也足够用了,可参考:

公有云体验版 - 观测云文档

完成观测云账号注册后,会登录到观测云工作空间控制台,之后的数据可视化都会在这里展现。

2. 准备一台可连通公网,并能访问 OpenAI API(务必确认这条)的主机,最小规格建议 2C/4G/20GB,Ubuntu 16.04 LTS 或 CentOS 7.2 以上 OS,可参考:

系统要求 - DataFlux Func 文档库

3. 在这台主机上,安装 DataFlux Func GSE(观测云特别版)。执行以下命令即可:

  1. /bin/bash -c "$(curl -fsSL t.guance.com/func-portable-download)" -- --for=GSE

  2. sudo /bin/bash {安装文件所在目录}/run-portable.sh

可参考:快速开始 - DataFlux Func 文档库

安装完成后,即可通过浏览器登录 DataFlux Func 控制台,记住登录地址和账号,之后会用到。

DataFlux Func 是一款函数开发、管理、执行平台。简单易用、无需从零搭建 Web 服务,无需管理服务器等基础设施,只需编写代码并发布,简单配置即可为函数生成 HTTP API 接口。主页地址:func.guance.com

4. 仍在这台主机上,安装 DataKit 数据采集器。回到在第 1 步开通的观测云工作空间控制台,左侧功能面板选择【集成】->【DataKit】,复制 Linux 安装命令到主机上执行。由于命令行里默认注入了当前工作空间 token,所以这个 DataKit 安装后会默认上报数据到本工作空间,该 token 之后也可以修改。请参考:

主机安装 - 观测云文档

5. 将 DataFlux Func 作为数据源,和 DataKit 数据采集器绑定,实现以下数据采集和上报路径:

1)仍在这台主机上,修改 DataKit 的本地配置文件参数:

  • 打开 DataKit 配置文件:sudo vim /usr/local/datakit/conf.d/datakit.conf

  • 将 http_listen = "localhost:9529" 修改为 http_listen = "0.0.0.0:9529"

  • 重启 DataKit 服务:sudo datakit service -R

2)进入第 3 步的 DataFlux Func 控制台,选择 【开发】->【连接器】标签页,可以看到有一个默认的 DataKit 连接器,类型:HTTP;ID:datakit;主机 IP 指向本机;端口:9529;点击右下角【保存】确认无误。

好了,至此,已完成了所有前置步骤。接下来就进入正题,如何用启动 ChatGPT 采集模板和打开观测云仪表板。

DataFlux Func 托管版预计在 2023 年 5 月 22 日发布,届时第 2 步到第 5 步可以合并为一步完成,Func 数据直接上报到观测云工作空间,省略和 DataKit 绑定步骤。

打开采集

6. 安装 ChatGPT 监测脚本。进入 DataFlux Func 控制台(见第 3 步),进入【脚本市场】->【官方脚本市场-详情】,搜索到 ChatGPT 脚本,然后点击【安装】。

安装成功后,点击菜单【开发】->【脚本库】,可以看到刚安装的 ChatGPT 监控脚本,具体实现逻辑都在里面。

7. 将 DataFlux Func 配置为和 ChatGPT 应用通讯的代理。

点击菜单【管理】->【授权链接】->【新建】 , 找到【ChatGPT 监控】函数创建一个授权链接,全部保持默认选项;

创建完成后,在授权链接列表里,可以找到这个函数。 点击这个函数右侧的【示例】;

选择【POST 简化形式(JSON)】,会看到一个链接,指向本机地址。这个链接就是魔法所在,我们称之为【魔法链接】,请把它复制下来。

8. 在 Chat+ 应用里,把 API 调用地址,替换为【魔法链接】。

以 ChatGPT 客户端举例 :

https://github.com/anse-app/chatgpt-demo

1)按照 readme 里的指引,把客户端跑起来;

2)应用【魔法链接】:

https://github.com/anse-app/chatgpt-demo/blob/main/src/pages/api/generate.ts 里的 46 行, 把调用的 url 从

https://api.openai.com/v1/chat/completions 

改为【魔法链接】,比如在本次示例中为:https://func-dev.dataflux.cn/api/v1/al/auln-VbUBSOEYNxqv/simplified 。

(!!注意每人得到的【魔法链接】都不一样,不要照搬复制示例链接。)

至此,大家应该都理解原理了,通过【魔法链接】,把原来发给 Chat+ 应用向 OpenAI 的请求先发给 Func 函数,由 Func 作为代理转发,以采集过程状态指标。

3)配置更新后,在 chatgpt-demo 里,比如我这里是 http://localhost:3000, 向 ChatGPT 提问吧,生成些原始数据。

9. 最后一步了,打开观测云仪表板。

登录观测云工作空间,选择左侧功能面板【场景】->【仪表板】->【新建仪表板】;

找到 ChatGPT 仪表板模板,创建实例;

点击完成添加后,注意调整下右上角时间范围到实际的采集时间段,就能看到可视化图表了。

再选择左侧功能面板【场景】->【查看器】->【新建查看器】,创建 ChatGPT 查看器实例,就能看到所有采集到的原始日志视图。

最后,再看下效果图。

在工作空间左侧功能栏【场景】->【查看器】里可以看到本次采集到的原始日志。

对 DataFlux Func 感兴趣的同学,可以尝试自己写监测脚本,可参考:

如何开发自定义巡检 

https://func.guance.com/doc/script-market-guance-monitor/

可观测性扩展

还能进一步利用观测云把 Chat+ 应用的端到端全部监控起来, 包含 RUM,APM,Log 以及 Chat+应用的运行环境,这样能带来额外两个好处,让可观测性更加完整:

1、不是所有对用户体验有影响的情况是由 OpenAI 调用引起的,有可能是前端代码,或者网络抖动,防止 OpenAI 无故背锅 

2、可识别每一次 OpenAI 调用失败时,到底影响了哪些具体的用户,整个链条清晰可见

像这个客户端基于 nodejs 的,可参考:

https://docs.guance.com/integrations/rum/rum-web-h5/ https://docs.guance.com/integrations/apm/ddtrace-nodejs/

实现原理

1、原本的请求路径是 应用 -> OpenAI , 为了监控 OpenAI 的调用,我们需要使用 Func 做一层代理,请求路径变为: 应用 -> Func -> OpenAI

2、具体如何转发,采集了哪些数据,上报了哪些数据, 可以参考开启步骤第 6 步里的脚本库里的代码逻辑。

关于价格

1、DataFlux Func 开源免费, 托管版 Func 成本取决于主机成本;

2、www.guance.com 体验版可每天免费使用 100 万条增量日志,大多数情况够用了,超过的部分按 1 万条增量,保存 3 天, 收费 0.01 元。可参考:价格 - 快速实现系统可观测 - 观测云

未来规划

可以预计未来会出现更多的基于 MaaS 的应用,观测云会持续提供适用于商用或开源大模型服务的监测模板,开发者借助观测云开箱即可观测的能力,可以把这些大模型用得明明白白,更专注在应用研发上。

对于本文的任何问题或者疑惑,大家可以加入观测云官方社区随时咨询,扫码添加微信加入观测云社区。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flume 进阶 Ganglia 部署(十二)

规划安装 hadoop100: web gmetad gmod epel-release hadoop101: gmod epel-release hadoop102: gmod epel-release 安装 三台都安装 sudo yum -y install epel-releasesudo yum -y install ganglia-gmond在hadoop100安装 sudo yum -y install ganglia-gmetadsudo yum -y i…

RT-Thread 2. GD32在 RT-Thread Nano上添加控制台与 FinSH

本篇文档分为两部分: 第一部分是添加 UART 控制台(实现打印):用来向控制台对接的终端输出打印信息;该部分只需要实现两个函数,串口初始化和系统输出函数,即可完成 UART 控制台打印功能。 第二部…

sonarqube上的webAPI如何调用?-暴躁了一天调通了

首先吐槽一句,官方API文档给了个寂寞,调不通啊,然后查各种搞了一天,竟然没有一篇文章能把这件事写清楚,给我暴躁的。 结论竟然是原来是我不会调用接口。。。我今天非要把这篇文章写好。 web接口入口 通过sonarqube下…

QT开发实战-动态壁纸软件

动态壁纸软件开发 项目源代码在下面链接获取: ----------------------------- 开发者:CodeSharkSJ 希望此项目能加强你对Qt的应用 文章目录 项目图与开发环境核心技术原理自定义窗口程序UI布局背景绘制样式表基本实现QWebEngineQMedia使用系统托盘隐藏记忆功能应用程序打包 …

四年巨亏49亿,第四范式四闯IPO

深陷亏损的AI公司第四范式,四闯IPO! 4月24日,决策类AI独角兽北京第四范式智能技术股份有限公司(下称“第四范式”)再次更新招股书,继续向港交所发起上市冲击。 第四范式是一家专注于提供以平台为中心的人…

(9) 线性回归

文章目录 1 多元线性回归LinearRegression1.1 基本原理1.2 linear_model.LinearRegression 2 回归类的模型评估指标2.1 是否预测了正确的数值2.2 是否拟合了足够的信息 3 岭回归与Lasso回归3.1 多重共线性3.2 岭回归3.2.1 linear_model.Ridge3.2.2 选取最佳的正则化参数 α \al…

车载以太网-FlexRay

摘要: 到底什么是FlexRay? 1. FlexRay是什么? 那么到底什么是FlexRay?往简单了说,就是CAN总线加LIN总线混合起来排个课程表、提个速再加个冗余。像LIN一样基于TDMA,提高了协议的复杂度,拥有静态…

【linux】挖矿病毒nanominer伪装成python占用服务器GPU的查杀记录

病毒表现 gpustat -cpu 可以看到root用户将GPU的核心跑满了每个占用都是100%,显存吃了6G多。 nvidia-smi 不能正常显示GPU被哪些进程占用 ![在这里插入图片描述](https://img-blog.csdnimg.cn/780f90080a084a44ac59227e384f985b.png 病毒文件分析 在/tmp/.x/…

win10 vmware虚拟机蓝屏怎么办 win10 vmware虚拟机蓝屏解决方法【详解】

最近有朋友出现win10 vmware虚拟机蓝屏的情况应该怎么办?小伙伴们在使用vmware虚拟机出现了蓝屏现象的小伙伴们不用担心,小编翻阅各种资料后给大家带来两种虚拟机蓝屏的解决方法,想要解决此问题的小伙伴们快跟着小编往下看吧! win…

三分钟看懂JDK、JRE和JVM的区别和联系

节选自JavaGuide(Github 标星 134k star!「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识) JVM Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同…

腾讯云轻量应用服务器卡死怎么连接?

腾讯云轻量云服务器卡死怎么解决?使用腾讯云自带的VNC登录连接轻量服务器,或使用腾讯云OrcaTerm一键免密登录轻量实例。如果是确定数据没问题,也可以使用控制台自带的重启实例。 腾讯云轻量应用服务器参考:https://curl.qcloud.co…

5月18号软件资讯更新合集.....

JTopCMS V4 更新:静态发布功能优化 适配版本:V4.6 介绍 : 本次更新对静态发布 HTML 功能进行多个重要优化,支持全站增量模式发布,支持跨站级栏目联动发布,增加定时发布指定栏目范围,增加栏目对…

php对接阿里云API调用企业税号查询的高级实战案例解析(下拉筛选查询、远程调用API、xm-select组件应用)

阿里云API调用企业税号查询 一、功能描述1.请求参数2.GET请求代码3.返回示例4.错误码 二、核心代码1.引入外部JS库2.构建HTML容器3.xmSelect回调 总结 一、功能描述 企业税号查询-公司税号查询-企业公司开票信息查询-企业营业执照信息查询-工商信息查询-企业基本信息查询&…

【ROS】ROS1编程速览

1、简述 很多项目已经转向ROS2,本人作为ROS小白从ROS1开始学起,但是不会深入学习ROS1,只一带而过。 下面只了解一些ROS1中的概念和基本编程接口。 ROS1中有两种通信模式:话题模式和服务模式,区别如下 2、话题模式 …

分享一份适合练手的软件测试实战项目,涵盖金融,电商,银行,商城,家政项目

现如今,越来越多的人涌入到测试行业来了,有自学的,有通过参加培训转行的,不管通过何种方式,他们面临的最主要的问题就是: 1、简历上的项目经验如何去编造? 2、入职的背调、薪资流水、离职证明等…

涨点神器:CVPR2023 InceptionNeXt当Inception遇见ConvNeXt,在Yolov8即插即用,小目标检测涨点明显

论文地址: https://arxiv.org/pdf/2303.16900.pdf 代码: GitHub - sail-sg/inceptionnext: InceptionNeXt: When Inception Meets ConvNeXt 单位:NUS, Sea AI Lab(颜水成等人) 1. InceptionNeXt介绍 摘要:受ViT的 long-range 建模能力的启发,大核卷积来扩大感受野用于…

Nvivo12 mac code comparison编码比较查询:软件操作步骤

编码比较查询步骤 1.合并项目2.编码比较2.1 选择不同的编码人2.1.1 比较单元 2.2-2.4 选择比较项目2.5 显示比较内容 3.结果kappa的解读4.参考资源 1.合并项目 如果两个编码人是在同一个项目文件中编码的(你编一遍,我编一遍),此步…

Oracle 扩展统计信息收集 extension statistics

1.扩展统计信息的收集,可以用select dbms_stats.create_extended_stats(scott,test01,(object_name,object_type))from dual 创建扩展统计列,然后dbms_stats.gather_table_stats(scott,test01)收集统计信息,也可以直接在 dbms_stats.gather_table_stats中的method_opt属性同时…

【黑马笔记】IDEA配置Tomcat

文章目录 1. 配置Tomcat-本地部署1.1 官网下载tomcat压缩包1.2 idea配置tomcat1.2.1 本地tomcat查询1.2.2 部署项目 2. 配置Tomcat-插件部署 1. 配置Tomcat-本地部署 1.1 官网下载tomcat压缩包 https://tomcat.apache.org/ 解压Tomcat 1.2 idea配置tomcat 1.2.1 本地tomc…

DELL戴尔笔记本电脑成就Vostro 5620原装出厂Windows11系统恢复原厂OEM专用系统

DELL戴尔笔记本电脑成就Vostro 5620原装出厂Windows11系统恢复原厂OEM专用系统 系统自带所有驱动、办公软件、MyDell、迈克菲等预装程序 链接:https://pan.baidu.com/s/16AKSsMRTzYXQ_AX_Eti22w?pwdazx8 提取码:azx8