このプロジェクトについて

zai-proxyは、Z.AI Claude APIの前面に配置されるGoベースのリバースプロキシで、素のAPIアクセスにはない可観測性と信頼性の機能を追加します。主要な2つのコンポーネント(プロキシサービスと監視ダッシュボード)で構成されています。 プロキシはポート8080でリッスンし、リクエストを上流のLLM APIに転送し、/metricsでPrometheusメトリクスを公開します。主な機能には、トークン追跡(APIが報告する使用量またはフォールバックとしてのtiktoken推定を使用して、リクエストごとの入力トークンと出力トークンをカウント)、適応型レート制限(EWMA上限推定器を使用して上流の429応答を追跡し、制限直下を自動的に維持して、定期的に上限引き上げをプローブ)、およびバッファリングなしのSSEストリーミングパススルーが含まれます。また、DEPLOYMENT_VARIANTラベルを介してブルー/グリーンおよびカナリアデプロイをサポートし、プロキシバージョンやモデル構成を並行して比較できます。 ダッシュボードはReactフロントエンドを備えたGoバックエンドで、プロキシのPrometheusエンドポイントを5秒ごとにスクレイピングし、境界付きインメモリリングに二重解像度のスナップショットを保持し(5秒解像度で24時間、1分解像度で7日間)、SSE経由でブラウザに更新をストリーミングします。リクエストスループット、レイテンシ百分位数、トークン使用量合計、エラー率、およびバリアントごとの比較パネルを表示します。 プロキシは、リクエスト数、レイテンシヒストグラム、トークンレート、エラー率、レート制限待ち時間、再試行回数、ワーカー使用率、ビルド情報など、包括的なPrometheusメトリクスを公開し、すべてモデルとデプロイメントバリアントでラベル付けされています。設定は環境変数によって処理され、APIキー、ターゲットURL、レート制限パラメータ、クォータポーリング、再試行動作をカバーします。