freellmapi

여러 제공자의 무료 티어를 겹쳐 쓰는 OpenAI 호환 프록시

curl -fsSL https://freellmapi.co/install.sh | bash

여러 LLM 제공자의 무료 사용 한도를 한 엔드포인트로 묶어 주는 프록시입니다. OpenAI 호환 규격이라 기존 클라이언트 코드를 그대로 두고 base URL 만 바꿔 붙이며, 한도가 차면 다음 제공자로 넘깁니다. 설치 스크립트와 npx 실행을 모두 지원합니다.

판단

이럴 때 씁니다

  • 여러 제공자의 무료 티어를 한도까지 긁어 쓰되 SDK 를 스물아홉 개 붙이고 싶지는 않을 때
  • 기존 OpenAI 클라이언트 코드를 그대로 두고 base URL 만 바꿔 붙이고 싶을 때
  • 한 제공자가 레이트 리밋에 걸리면 자동으로 다음 제공자로 넘어가는 폴백 체인이 필요할 때
  • 개인 실험이나 사이드 프로젝트에서 추론 비용을 0 에 가깝게 유지하고 싶을 때

이럴 땐 쓰지 마세요

  • 프론티어급 모델 품질이나 지연 시간 보장이 필요한 프로덕션 서비스일 때
  • SLA 와 가용성 약정이 필요한 상용 트래픽을 태울 때
  • Docker 를 띄울 수 없는 환경일 때
  • 제공자별 무료 티어 약관상 해당 용도로 쓸 수 없는 상업적 이용일 때

차별점

  • 29개 제공자의 358개 무료 엔드포인트를 하나의 OpenAI 호환 /v1 엔드포인트 뒤로 모읍니다.
  • 라우터가 요청마다 가용 모델을 고르고 레이트 리밋에 걸리면 다음 제공자로 자동 폴백합니다.
  • 키별 사용량을 추적해 각 제공자의 무료 한도를 넘지 않도록 관리하고 키는 암호화해 저장합니다.
  • 서명된 모델 카탈로그를 원격에서 받아 신규 모델과 쿼터 변경을 git pull 없이 반영합니다.

워크플로

  1. 01Docker 가 뜬 상태에서 설치 스크립트를 실행하면 ~/freellmapi 구성과 암호화 키 생성, 컨테이너 기동까지 한 번에 끝납니다.
  2. 02http://localhost:3001 을 열어 Keys 페이지에서 제공자 키를 등록하고 폴백 체인 순서를 조정합니다.
  3. 03같은 페이지 상단에서 통합 API 키를 받아 OpenAI SDK 의 api_key 로 넣고 base_url 을 http://localhost:3001/v1 로 바꿉니다.
  4. 04model 에 auto 를 넘기면 라우터가 가용 모델을 고르고, 응답의 X-Routed-Via 헤더로 실제 경유 제공자를 확인합니다.

주요 명령

명령설명
curl -fsSL https://freellmapi.co/install.sh | bash~/freellmapi 를 구성하고 암호화 키를 생성한 뒤 컨테이너를 띄웁니다. 재실행해도 .env 는 보존됩니다.
base_url="http://localhost:3001/v1"OpenAI SDK 의 base URL 만 이 값으로 바꾸면 기존 코드가 그대로 동작합니다.
model="auto"라우터가 가용 모델을 자동 선택합니다. auto:fast, auto:smart 로 성향을 지정할 수 있습니다.

함정

설치 전에 확인하세요

  • 제공자 무료 티어를 겹쳐 쓰는 구조라 프론티어 모델이 없고 지연 시간이 들쭉날쭉하며 SLA 가 없습니다.
  • 상위 모델이 일일 한도를 소진하는 늦은 시간대에는 응답 품질이 눈에 띄게 떨어졌다가 UTC 자정에 회복됩니다.
  • 제공자별 무료 티어 약관은 각기 다릅니다. 상업적 용도로 쓰기 전에 해당 제공자 정책을 직접 확인해야 합니다.
  • 모델 카탈로그 자동 갱신(라이브 카탈로그)은 연 19달러 유료 기능입니다. 무료로 쓰면 카탈로그가 수동 갱신입니다.

검토 메모

공식 문서·릴리스·공개 자료를 바탕으로 정리한 편집 메모입니다.

저장소 설명에 붙은 개인 실험용이라는 문구를 겸양으로 읽지 않는 편이 좋습니다. 저는 이것을 정확한 사양 표기로 봅니다. 프론티어 모델이 없고 SLA 도 없으며 지연이 들쭉날쭉한 것은 결함이 아니라 무료 티어를 겹쳐 쌓는 구조에서 필연적으로 따라오는 성질입니다. 그래서 판단 기준을 단순하게 잡겠습니다. 사용자에게 응답 시간을 약속하는 자리에는 올리지 않고, 충분히 쓸 만하고 공짜인 쪽이 최고 성능에 과금되는 쪽을 이기는 자리에만 둡니다. 프로토타입과 분류기, 초안 생성, 몇 번이고 다시 돌려 보는 로컬 에이전트 루프가 여기에 해당합니다.

제가 가장 성가시다고 보는 성질은 품질에 시각이 개입한다는 점입니다. 상위 모델이 일일 한도를 소진하는 늦은 시간대로 갈수록 라우터가 고를 수 있는 선택지가 줄어 응답이 눈에 띄게 나빠지고, UTC 자정에 회복됩니다. 이것이 단순한 불편으로 끝나지 않는 이유는 재현성을 깨기 때문입니다. 프롬프트 두 개를 비교하거나 설정을 바꿔 가며 평가하는 작업을 이 위에서 돌리면, 차이가 프롬프트에서 왔는지 실행한 시각에서 왔는지 구분할 수 없게 됩니다. 저라면 평가와 벤치마크만큼은 고정된 단일 제공자로 따로 빼겠습니다.

도입 비용도 과소평가하기 쉽다고 봅니다. 29개 제공자의 무료 티어를 쌓는다는 말은 곧 계정을 그만큼 만들고 키를 그만큼 관리한다는 뜻입니다. 키는 암호화되어 저장되고 라우터가 사용량을 추적해 한도를 넘지 않게 잡아 주지만, 최초 세팅에 드는 수고 자체는 줄지 않습니다. 제공자별 약관도 각기 다르므로 상업적 용도를 염두에 두셨다면 도구를 붙이기 전에 정책부터 확인하시길 권합니다. 손이 덜 가는 쪽을 원하신다면, 결국 유료 크레딧을 한 곳에서 분배하는 게이트웨이가 시간까지 계산했을 때 더 쌉니다.

비교

상용 게이트웨이가 유료 크레딧을 여러 제공자에 분배하는 데 초점을 둔다면, FreeLLMAPI 는 무료 티어만 겹쳐 쌓아 비용을 0 에 가깝게 만드는 것이 목적입니다. OpenAI 호환이라 클라이언트 교체 비용이 없는 대신 품질·지연·가용성 보장이 없어 실험과 사이드 프로젝트용에 맞습니다.

최근 변경

v0.9.0에서는 프록시 서버 없이 직접 호스팅한 Cloudflare Worker로 요청을 우회시키는 opt-in Fetch Relay 전송 방식을 추가했습니다. Docker 이미지는 루트 엔트리포인트가 데이터 디렉터리 소유권을 먼저 고쳐 Railway·Render 같은 호스트에서 나던 SQLITE_CANTOPEN/EACCES 오류를 해결했고, macOS 빌드는 서명·공증을 마쳐 우클릭 열기 없이 실행할 수 있습니다.