【开源自荐】 PrismCat — 无感接入你的api调用流程,获得全量日志

paopao 2026-02-17 18:08 1

首先,祝各位佬友新年快乐,万事如意!^-^




^-^ 痛点起因


现在社区里的 AI 工具多到眼花缭乱,但作为一名每天和各种大模型 API 打交道的用户,我总是希望我的真实意图能被保留。但难免会遇到使用 API 时突然报 context_length_exceeded 之类的错误——明明 Prompt 不长?抓包一看,客户端偷偷注入了一大段 system prompt……


所以我不禁想问:我的请求发出去之后,到底在传输过程中变成了什么样?


虽然 Postman 或浏览器的 Network 面板能看,但那毕竟是调试工具,没法在大规模调用时"无感"复盘。相信不少佬友都经历过因为某些"玄学报错"而在深夜抓耳挠腮的时候 ^-^。于是,我跟 AI 捣鼓出了这个小工具:PrismCat(棱镜猫)




^-^ 它是什么?


简单来说,它是一个 LLM API 透明代理 / 中转日志工具。你只需要把代码里的 API Base 从 api.openai.com 改成 PrismCat 的地址,它就能记录下所有的请求响应细节,并提供一个 UI 界面供你复盘。


技术栈:Go 后端 + React 前端 + SQLite 存储,编译为单文件二进制,无需任何外部依赖。




^-^ 核心亮点




  • ^-^ 极简透明转发:不需要修改任何请求路径,提供最高的兼容度!通过子域名自动对应上游(如 openai.localhost:8080 直接对应 OpenAI 接口)。理论上可以无感接入任何支持自定义 base_url 的流程,比如:客户端 → PrismCat → NewAPI → PrismCat → 最终上游




  • ^-^ 视觉化日志分析:内置深度优化的 JSON 渲染器。



    • 专项优化:自动检测内嵌图像的 Base64 编码,并将其智能折叠。再也不会被几万行的 Base64 字符串刷屏,看日志像看电影回放一样清晰。




  • ^-^ 一键重放 (Playground):看到某个失败记录?点击"重放",直接在网页端修改 Prompt 或参数重新发送,快速定位问题。




  • ^-^ 本地与安全:数据基于本地 SQLite + 文件存储,不经过任何第三方服务器,隐私完全由你掌控。




  • ^-^ 自动运维:支持配置日志保留天数,过期自动清理,告别硬盘焦虑。




  • ^-^ 跨平台部署:Go 编译的原生二进制,高性能、低占用。



    • Windows 桌面版:支持系统托盘,静默运行,开机即忘。

    • Docker / 云端:原生支持 Docker,可以部署在你的云服务器上,做一个私有的透明转发节点。






^-^ 预览






^-^ 快速上手


目前已发布 v1.0.0 版本(Windows 尝鲜版 & Docker 同步支持):



  1. Windows 用户:前往 Release 下载压缩包,解压直接运行 prismcat.exe

  2. 管理后台:浏览器访问 localhost:8080(默认端口,可在配置中修改)。

  3. 配置上游:在设置界面填入你的上游 API 地址。

  4. 无感接入:把你的调用地址改为 http://openai.localhost:8080/v1(假设你配置的上游叫 openai)。



想部署到服务器? 项目自带 docker-compose.yml 配置,通过环境变量 PRISMCAT_UI_PASSWORD 给管理界面加一把锁,安全部署到公网。详见 README。





最后,市面上日志工具不少,但它们大多面向团队/企业场景,部署复杂度高。我找了一圈没发现完全满足我需求的——透明代理 + 可视化日志回放 + 长期运行——所以自己造了一个。


希望能帮到有同样需求的佬友!你们的 Star ^-^ 和 Issue是我更新的动力,有任何问题也欢迎在帖子里交流 ^-^


^-^ GitHub

最新回复 (19)
  • Grogu 02-17 18:08
    1

    感谢佬友分享 ^-^

  • 咕咚 02-17 18:09
    2

    感谢分享~

  • sunfly 02-17 18:10
    3

    好东西啊^-^

  • zasss 02-17 18:10
    4

    感谢分享

  • CDB111 02-17 18:11
    5

    已star,好东西!

  • seefs 02-17 18:17
    6

    图片很好,感谢分享

  • Elizabeth1 02-17 18:21
    7

    感谢分享,这就去用

  • 大帅哥 02-17 18:56
    8

    感谢大佬

  • 手握明月摘星辰,世间无我这般人 02-17 20:04
    9

    感谢分享,有时间尝试一下

  • paopao 楼主 02-17 23:39
    10

    ^-^你是说真寻吗

  • turbux 02-17 23:59
    11

    感谢佬友分享

  • google859 02-18 11:56
    12

    好东西,感谢佬友分享

  • VrianCao 02-18 11:57
    13

    和主流的 LLM Observability 相比起来有什么优势吗?

    看起来比较轻量?抛弃了 ClickHouse 这些性能开销大头?

  • 俩生花不开 02-18 12:00
    14

    感谢大佬分享

  • paopao 楼主 02-18 13:50
    15

    轻太多了,内存占用基本可以忽略,核心是通过子域名,所以不需要改路径,应该能更好地兼容绝大多数(奇怪的 ^-^)sdk,几乎零侵入可以长期跑,还有就是对于base64或者流式这些在观感上做了一点优化,另外像是流式的话,我不知道LLM Observability是不是实时传输的,但本项目都是异步存储,所以除了网络延迟外(不过我觉得更多的场景是将本项目部署在客户端主机上,所以可以忽略)应该是0延迟的,能做到与直连没有显著区别

  • cat3399 02-18 14:07
    16

    厉害的佬,很需要这个功能

  • cat3399 02-18 14:09
    17

    没有linux版本诶


  • paopao 楼主 02-18 14:35
    18

    因为我自己本地没有linux,我服务器直接用docker了,而且一开始不确定会不会有这个需求 ^-^我晚点上传一下

  • paopao 楼主 02-18 15:21
    19

    已上传,不过还没有测试,佬可以当小白鼠 ^-^

* 帖子来源Linux.do
返回