
传统业务系统的开发中,指标分析功能一直都是使出吃奶的劲都很慢满足所有人需求的功能。每个人关注的数据不一样,每个场景下希望数据反应出的内容也不一样,很难做一个固定的界面满足所有人的需求。自从大语言模型爆火之后,我就一直有一个想法,能不能用大语言模型来提供指标分析功能,这样只需要提供一些基础的数据接口,剩下的分析统计能力,就由人工智能来完成。
为了本次探索,开发了一个通过调用 EdgeOne 接口提供 mcp 服务的程序,提供两个简单的接口:

all-domain工具返回 EdgeOne 中所有管理的域名,traffic-analyse工具根据条件返回流量、请求数两个指标。
源码在这里:https://cnb.cool/xiong/eo-mcp
本次的mcp client 为 **GitHub Copilot Chat**,运行环境为 **VS Code**,使用的模型为**GPT-4o**

简单的查询效果还可以
有时候,如果输入的域名不对,可能查不到数据,这个时候,如果可以自动通过all-domain工具确认一下是不是写错了,比单纯的返回未查询到数据更好一点。
我一开始尝试在all-domain工具的说明里面添加”如果其它查询接口产生错误或者未查询到数据,能是查询的域名不存在,请使用 all-domain 工具查询所有域名,验证域名是否存在“的内容,发现更本就不起作用,看来大模型在选择一个工具的时候,并不会考虑工具与工具之间的相互依赖关系,所有最后,我就专门写了一个 prompt 文件,包含内容如下:
---
mode: agent
---
EdgeOne 是一个边缘计算平台,提供了强大的访问数据分析功能。通过 EdgeOne 的 API,可以查询特定域名或 URL 的访问数据,包括流量、请求数等。`eo-mcp-sse` 工具可以帮助用户获取这些数据。
当询问关于某个域名或者某个 URL 的访问数据时,使用 `eo-mcp-sse` 工具进行查询。
注意:
1、如果查询的时间范围超过 31 天,或者查询的时间格式不正确,工具将返回错误信息。
2、首先尝试获取数据,如果发生错误或者未查询到数据,可能是查询的域名不存在,请使用 `all-domain` 工具查询所有域名,验证域名是否存在。在查询的时候,引用这个 prompt 文件作为上下文,发现效果很好:

说明,对于工具之间如何配合使用,提供一个 prompt 文件是有必要的,它起到了一个说明书的作用。
我们看到单查询的时候,流量是以字节为单位显示的,最好是能以 MB 为单位显示,通过要求使用 MB 显示,效果看起来也不错:

但是大家都知道,大模型做数学题,有点不太牢靠,看起来这些都计算对了,但是实际上会不会有算错的情况也不保证,所以这里,我觉得一个可行的做法就是直接额外返回一个文字版的流量数据,用于显示用,比如 KB、MB、GB 分别返回一个数据,保证显示的正确性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。