GPT-Load

여러 채널과 자격 증명을 한 입구로 묶는 자체 호스팅 게이트웨이

git clone --depth 1 https://github.com/tbphp/gpt-load.git && cd gpt-load && cp .env.example .env && docker compose up -d

여러 제공자의 API 키와 구독 계정을 한 곳에 모아 두고 애플리케이션에는 주소 하나와 접근 키 하나만 주는 자체 호스팅 게이트웨이입니다. 클라이언트는 쓰던 규약을 그대로 쓰고 제공자와 계정, 모델, 라우팅 정책은 관리 화면에서 정합니다. 자격 증명이 여러 개일 때 가중치를 자동으로 조정하고 재시도와 냉각, 차단, 세션 고정으로 한 계정의 장애가 전체로 번지지 않게 막습니다. 상태와 경로, 로그, 사용량, 비용 추정을 내장 화면에서 봅니다. SQLite 와 MySQL, 포스트그레스를 지원하고 자격 증명은 로컬에서 암호화해 보관합니다.

판단

이럴 때 씁니다

  • API 키와 구독 계정이 여러 개라 관리가 흩어질 때
  • 한 계정의 과부하가 전체 서비스로 번지는 것을 막아야 할 때
  • 요청 로그와 사용량, 비용 추정을 한 화면에서 봐야 할 때

이럴 땐 쓰지 마세요

  • 제공자 하나에 키 하나면 게이트웨이가 과합니다
  • 2.x 는 아직 후보 판이고 1.x 데이터를 옮겨 오지 못합니다
  • 구독 계정을 API 처럼 쓰는 채널은 약관 확인이 먼저입니다

차별점

  • API 키와 구독 계정을 같은 자격 증명 관리 체계로 다룹니다.
  • 가중치 자동 조정과 재시도, 냉각, 차단, 세션 고정이 기본으로 들어 있습니다.
  • 클라이언트는 쓰던 규약을 그대로 쓰고 게이트웨이가 변환합니다.
  • 자격 증명을 로컬에서 암호화해 보관합니다.

워크플로

  1. 01저장소를 받아 환경 파일을 만들고 컴포즈로 띄웁니다.
  2. 02상태 확인 주소로 기동을 확인합니다.
  3. 03첫 기동 때 만들어진 관리 키를 꺼내 보관합니다.
  4. 04채널을 추가하고 키나 구독 자격 증명을 넣습니다.
  5. 05그룹을 만들어 모델과 정책을 정하고 접근 키를 발급해 애플리케이션에 줍니다.

주요 명령

명령설명
docker compose up -d게이트웨이를 띄웁니다.
curl --fail http://127.0.0.1:3001/health기동을 확인합니다.
docker compose exec gpt-load sh -c 'cat /app/data/auth.key'첫 기동 때 생성된 관리 키를 읽습니다.

함정

설치 전에 확인하세요

  • 2.0 은 완전히 다시 만든 판이라 1.x 데이터를 열거나 가져오지 못합니다. 빈 데이터베이스와 새 암호화 키로 시작해야 합니다.
  • 저장소 최상단 안내는 2.x 기준인데 최신 정식 판은 1.4.11 이고 2.0 은 후보 판입니다. 어느 쪽을 띄우는지 확인해야 합니다.
  • 기본은 루프백 주소만 듣습니다. 외부에 열려면 설정을 바꿔야 하고, 그 순간 구독 채널의 고정 콜백 포트도 함께 노출됩니다.
  • 첫 기동에 관리 키가 자동 생성됩니다. 꺼내서 따로 보관하지 않으면 컨테이너를 지울 때 함께 사라집니다.

비교

게이트웨이는 대체로 API 키를 여러 개 물려 돌리는 데까지입니다. 이쪽은 구독 계정 로그인까지 같은 체계로 넣고, 장애가 난 자격 증명을 자동으로 빼는 운영 기능을 두껍게 넣었습니다. 대신 관리 화면과 데이터베이스가 딸린 서비스를 하나 더 운영하게 됩니다.

최근 변경

새 채널이 추가되고 의존성이 올라갔습니다. 2.x 는 완전히 다시 만든 판이라 1.x 데이터와 호환되지 않으므로 빈 데이터베이스와 새 암호화 키로 시작하라고 안내하고 있습니다.