共计 3781 个字符,预计需要花费 10 分钟才能阅读完成。
作者|观测云 徐季秋
当初基于 OpenAI 的 Chat+ 利用井喷,但给开发者带来了两个难点,一是因为 OpenAI 基于 tokens 的计费机制导致不容易布局生产;另一是 OpenAI 提供的调用自身不稳固,很难分辨是传参谬误或是拜访失败。这导致许多开发者,须要在调试时一边小心翼翼地时刻关注余额,又要放心服务质量抖动,挺让人糟心。
其实,通过简略地对 OpenAI 设置些应用监测,就能大幅晋升应用体验,以下用 SaaS 监控观测平台——观测云举例。
基于观测云弱小的可编程机制能够轻松实现 OpenAI 可观测,记录所有申请的输入输出内容、调用申请提早、调用成功率、以及费用详情,而实现这些性能就是几分钟动动手的事件。观测云已预置了下文用到的所有数据采集与仪表板模板,略作配置即可应用。
展现效果图
仪表板视图
日志查看器视图
如果曾经是观测云用户,也装置过 DataFlux Func 组件,能够跳过前置筹备步骤,间接从第 6 步关上采集开始;
新用户请从前置筹备步骤开始操作。
前置筹备
- 在观测云官网注册账号 www.guance.com。对于注册步骤和站点抉择,可参考:
https://docs.guance.com/billing/commercial-register/
本文应用观测云 - 中国区 1(杭州)站点,商业版账号。间接开明商业版可取得 500 元无限度代金券,实现本文观测场景每天生产仅需几分钱,能够用几十年了。
或能够抉择开明体验版,每天可收费上报 100 万条增量日志,也足够用了,可参考:
https://docs.guance.com/billing/trail/#register-trail
实现观测云账号注册后,会登录到观测云工作空间控制台,之后的数据可视化都会在这里展示。
- 筹备一台可连通公网,并能拜访 OpenAI API(务必确认这条)的主机,最小规格倡议 2C/4G/20GB,Ubuntu 16.04 LTS 或 CentOS 7.2 以上 OS,可参考:
https://func.guance.com/doc/maintenance-guide-requirement/ 在这台主机上,装置 DataFlux Func GSE(观测云特别版)。执行以下命令即可:
- /bin/bash -c “$(curl -fsSL t.guance.com/func-portable-download)” — –for=GSE
- sudo /bin/bash {安装文件所在目录}/run-portable.sh
可参考:https://func.guance.com/doc/quick-start
装置实现后,即可通过浏览器登录 DataFlux Func 控制台,记住登录地址和账号,之后会用到。
DataFlux Func 是一款函数开发、治理、执行平台。简略易用、无需从零搭建 Web 服务,无需治理服务器等基础设施,只需编写代码并公布,简略配置即可为函数生成 HTTP API 接口。主页地址:func.guance.com
- 仍在这台主机上,装置 DataKit 数据采集器。回到在第 1 步开明的观测云工作空间控制台,左侧性能面板抉择【集成】->【DataKit】,复制 Linux 装置命令到主机上执行。因为命令行里默认注入了当前工作空间 token,所以这个 DataKit 装置后会默认上报数据到本工作空间,该 token 之后也能够批改。请参考:
https://docs.guance.com/datakit/datakit-install/
- 将 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 绑定步骤。
关上采集
- 装置 ChatGPT 监测脚本。进入 DataFlux Func 控制台(见第 3 步),进入【脚本市场】->【官网脚本市场 - 详情】,搜寻到 ChatGPT 脚本,而后点击【装置】。
装置胜利后,点击菜单【开发】->【脚本库】,能够看到刚装置的 ChatGPT 监控脚本,具体实现逻辑都在外面。
- 将 DataFlux Func 配置为和 ChatGPT 利用通信的代理。
点击菜单【治理】->【受权链接】->【新建】,找到【ChatGPT 监控】函数创立一个受权链接,全副放弃默认选项;
创立实现后,在受权链接列表里,能够找到这个函数。点击这个函数右侧的【示例】;
抉择【POST 简化模式(JSON)】,会看到一个链接,指向本机地址。这个链接就是魔法所在,咱们称之为【魔法链接】,请把它复制下来。
- 在 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/simp…。
(!!留神每人失去的【魔法链接】都不一样,不要照搬复制示例链接。)
至此,大家应该都了解原理了,通过【魔法链接】,把原来发给 Chat+ 利用向 OpenAI 的申请先发给 Func 函数,由 Func 作为代理转发,以采集过程状态指标。
3)配置更新后,在 chatgpt-demo 里,比方我这里是 http://localhost:3000,向 ChatGPT 发问吧,生成些原始数据。
- 最初一步了,关上观测云仪表板。
登录观测云工作空间,抉择左侧性能面板【场景】->【仪表板】->【新建仪表板】;
找到 ChatGPT 仪表板模板,创立实例;
点击实现增加后,留神调整下右上角工夫范畴到理论的采集时间段,就能看到可视化图表了。
再抉择左侧性能面板【场景】->【查看器】->【新建查看器】,创立 ChatGPT 查看器实例,就能看到所有采集到的原始日志视图。
最初,再看下效果图。
在工作空间左侧性能栏【场景】->【查看器】里能够看到本次采集到的原始日志。
对 DataFlux Func 感兴趣的同学,能够尝试本人写监测脚本,可参考:
如何开发自定义巡检
https://func.guance.com/doc/script-market-guance-monitor/
可观测性扩大
还能进一步利用观测云把 Chat+ 利用的端到端全副监控起来,蕴含 RUM,APM,Log 以及 Chat+ 利用的运行环境,这样能带来额定两个益处,让可观测性更加残缺:
- 不是所有对用户体验有影响的状况是由 OpenAI 调用引起的,有可能是前端代码,或者网络抖动,避免 OpenAI 无端背锅
- 可辨认每一次 OpenAI 调用失败时,到底影响了哪些具体的用户,整个链条清晰可见
像这个客户端基于 nodejs 的,可参考:
https://docs.guance.com/integrations/rum/rum-web-h5/
https://docs.guance.com/integrations/apm/ddtrace-nodejs/
实现原理
- 本来的申请门路是 利用 -> OpenAI , 为了监控 OpenAI 的调用,咱们须要应用 Func 做一层代理,申请门路变为:利用 -> Func -> OpenAI
- 具体如何转发,采集了哪些数据,上报了哪些数据,能够参考开启步骤第 6 步里的脚本库里的代码逻辑。
对于价格
- DataFlux Func 开源收费,托管版 Func 老本取决于主机老本;
- www.guance.com 体验版可每天收费应用 100 万条增量日志,大多数状况够用了,超过的局部按 1 万条增量,保留 3 天,免费 0.01 元。可参考:https://www.guance.com/billing#business
将来布局
能够预计将来会呈现更多的基于 MaaS 的利用,观测云会继续提供实用于商用或开源大模型服务的监测模板,开发者借助观测云开箱即可观测的能力,能够把这些大模型用得明明白白,更专一在利用研发上。
对于本文的任何问题或者纳闷,大家能够退出观测云官网社区随时征询,扫码增加微信退出观测云社区。