프로젝트 소개

zai-proxy는 Z.AI Claude API 앞에 위치하는 Go 기반 리버스 프록시로, 기본 API 액세스에는 없는 관찰 가능성과 신뢰성 기능을 추가합니다. 주요 구성 요소는 프록시 서비스와 모니터링 대시보드 두 가지입니다. 프록시는 포트 8080에서 수신 대기하고, 업스트림 LLM API로 요청을 전달하며, /metrics에서 Prometheus 메트릭을 내보냅니다. 주요 기능으로는 토큰 추적(API에서 보고한 사용량 또는 폴백으로 tiktoken 추정을 사용하여 요청별 입력 및 출력 토큰 계산), 적응형 속도 제한(EWMA 상한 추정기로 업스트림 429 응답을 추적하여 한도 바로 아래에서 자동으로 유지하고 주기적으로 상한 증가를 탐색), 버퍼링 없는 SSE 스트리밍 패스스루가 포함됩니다. 또한 DEPLOYMENT_VARIANT 레이블을 통해 블루/그린 및 카나리 배포를 지원하여 프록시 버전이나 모델 구성을 나란히 비교할 수 있습니다. 대시보드는 React 프론트엔드가 있는 Go 백엔드로, 5초마다 프록시의 Prometheus 엔드포인트를 스크레이핑하고, 제한된 인메모리 링에 이중 해상도 스냅샷을 유지하며(5초 해상도 24시간, 1분 해상도 7일), SSE를 통해 브라우저로 업데이트를 스트리밍합니다. 요청 처리량, 지연 시간 백분위수, 토큰 사용량 합계, 오류율, 변형별 비교 패널을 표시합니다. 프록시는 요청 수, 지연 시간 히스토그램, 토큰 비율, 오류율, 속도 제한 대기 시간, 재시도 횟수, 작업자 활용률, 빌드 정보를 포함한 포괄적인 Prometheus 메트릭 세트를 노출하며, 모두 모델 및 배포 변형별로 레이블이 지정됩니다. 구성은 API 키, 대상 URL, 속도 제한 매개변수, 할당량 폴링, 재시도 동작을 다루는 환경 변수를 통해 처리됩니다.