tbphp/gpt-load

Self-hosted AI gateway for multi-channel, multi-credential setups — API keys and subscription accounts, scheduling, failover, request logs and usage. 自托管 AI 网关:多渠道多凭据统一接入,含密钥与订阅账号、调度容错、日志与用量。

GPT-Load - LLM API용 자체 호스팅 게이트웨이

기능

  • 네이티브 OpenAI, Anthropic, Gemini 등의 API를 모방하는 단일 HTTP 엔드포인트를 제공합니다.
  • 해당 엔드포인트 뒤에 많은 채널(다른 공급자, 계정 또는 구독 서비스)을 구성하고 게이트웨이가 가중치, 상태 또는 비용에 따라 요청을 라우팅하도록 할 수 있습니다.
  • API 키 관리, OAuth 흐름, 재시도, 쿨다운, 블랙리스트 및 클라이언트별 액세스 키를 처리합니다.
  • SQLite, MySQL 또는 PostgreSQL을 백엔드로 하는 임베디드 UI에 로그, 사용 통계 및 비용 추정치를 저장하며 자격 증명은 디스크에서 암호화됩니다.

필요한 이유

  • 앱이 각 공급자에 맞게 코드를 변경하지 않고 여러 LLM 공급자(OpenAI, Claude, Gemini, Bedrock 등)와 통신해야 하는 경우.
  • 여러 API 키 간에 트래픽을 분산하고 속도 제한을 피하며 하나의 키가 실패할 경우 정상 키로 자동 폴백하기 위해.
  • 모든 LLM 호출에 대한 통합 감사 추적 및 비용 대시보드를 한 곳에서 유지하기 위해.

주요 구성 요소

구성 요소 역할
게이트웨이 서버(Go로 작성) OpenAI 호환 경로를 노출하고 선택된 업스트림 채널로 요청을 전달하며 일정 및 재시도 로직을 적용합니다.
관리 UI 채널, 그룹 및 AccessKey를 추가하기 위한 웹 콘솔(포트 3001). 상태, 로그 및 사용 차트를 표시합니다.
채널 특정 업스트림 서비스(예: OpenAI, Anthropic, 사용자 지정 OpenAI 호환 릴레이) 및 하나 이상의 API 자격 증명에 대한 구성입니다.
그룹 모델 화이트리스트와 라우팅 정책(가중치, 쿨다운, 세션 선호도)이 포함된 채널 모음입니다.
AccessKey 클라이언트 애플리케이션에 제공되는 토큰으로, 클라이언트가 사용할 수 있는 그룹과 프로토콜을 결정합니다.

지원 프로토콜 및 모델

  • OpenAI 채팅, 완성, 임베딩, 이미지, 재순위, OCR/오디오 등.
  • Anthropic messages, Gemini models 엔드포인트, Mistral OCR/오디오 및 일반 OpenAI 호환 릴레이.
  • 30개 이상의 내장 공급자: OpenAI, Azure OpenAI, AWS Bedrock, Google Vertex AI, Claude, Gemini, DeepSeek, Moonshot, Hugging Face, Cohere, Groq 등과 Codex, Grok 같은 구독 기반 서비스.

배포 옵션

  • Docker Compose(기본값) – 서비스를 컨테이너에서 실행하고 데이터를 Docker 볼륨(gpt-load-data)에 저장합니다.
  • 네이티브 바이너리 – Linux/macOS/Windows용 사전 빌드 실행 파일을 다운로드합니다. Windows에서는 서비스를 만드는 설치 프로그램도 제공합니다.
  • 데이터베이스 – SQLite가 기본으로 제공됩니다. DATABASE_DSN을 통해 MySQL 또는 PostgreSQL로 전환할 수 있습니다.

구성 하이라이트

  • .env 파일은 호스트, 포트, 시간 초과, 로깅, 프록시 설정 및 암호화 키를 제어합니다.
  • AUTH_KEY는 관리 UI를 보호하고, ENCRYPTION_KEY는 저장된 API 비밀을 암호화합니다(DB와 함께 백업해야 함).
  • CLIENT_IP_HEADER 및 TRUSTED_PROXIES를 사용하면 역방향 프록시 뒤에서 실행하고 IP 기반 제한을 적용할 수 있습니다.

일반적인 워크플로

  1. 시작 서비스를 시작합니다(docker compose up -d).
  2. 읽기 생성된 관리 키를 읽습니다(cat /app/data/auth.key).
  3. 로그인 http://127.0.0.1:3001에 로그인하고 채널(예: OpenAI + API 키)을 추가합니다.
  4. 그룹 만들기 채널과 노출할 모델을 선택합니다.
  5. AccessKey 생성 애플리케이션용 AccessKey를 생성하고 게이트웨이를 호출할 때 Authorization: Bearer ... 헤더에 해당 키를 사용합니다.

주의가 필요한 경우

  • encryption.key를 분실하면 저장된 모든 자격 증명을 복구할 수 없습니다.
  • 버전 2.0은 완전한 재작성으로, 이전 1.x 라인에서 데이터를 가져올 수 없습니다.
  • 서비스는 기본적으로 localhost에 바인딩됩니다. 자체 방화벽 또는 역방향 프록시 뒤에서만 노출하세요.

라이선스 및 커뮤니티

  • MIT 라이선스 핵심 코드.
  • 공급자 어댑터는 Apache-2.0 Bifrost Core에, OAuth 처리는 MIT CLIProxyAPI에 의존합니다.
  • 공식 Docker 이미지: ghcr.io/tbphp/gpt-load:2.

모든 세부 사항은 프로젝트의 README에서 직접 가져왔습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트