这个项目能做什么

zai-proxy 是一个基于 Go 的反向代理,位于 Z.AI Claude API 之前,为裸 API 访问所缺乏的可观测性和可靠性功能增加了支持。它由两个主要组件组成:代理服务和监控仪表板。 代理监听 8080 端口,将请求转发到上游 LLM API,并在 /metrics 端点导出 Prometheus 指标。关键功能包括令牌跟踪(使用 API 报告的使用情况或 tiktoken 估算作为回退,计算每个请求的输入和输出令牌)、自适应速率限制(通过 EWMA 上限估计器跟踪上游 429 响应,自动保持在限制以下,并定期探测上限增加)以及无缓冲的 SSE 流式传输。它还通过 DEPLOYMENT_VARIANT 标签支持蓝绿部署和金丝雀部署,用于并排比较代理版本或模型配置。 仪表板是一个 Go 后端,带有 React 前端,每 5 秒抓取代理的 Prometheus 端点,在有界内存环中维护双分辨率快照(5 秒分辨率保留 24 小时,1 分钟分辨率保留 7 天),并通过 SSE 向浏览器流式传输更新。它显示请求吞吐量、延迟百分位数、令牌使用总量、错误率以及每个变体的比较面板。 代理暴露了一套全面的 Prometheus 指标,包括请求计数、延迟直方图、令牌速率、错误率、速率限制等待时间、重试尝试、工作线程利用率和构建信息,所有指标都按模型和部署变体标记。配置通过环境变量处理,涵盖 API 密钥、目标 URL、速率限制参数、配额轮询和重试行为。