FreeLLMAPI
FreeLLMAPI는 OpenAI 호환 프록시로, 약 14개 LLM 제공자의 무료 키를 집계하고 자동 failover·키 사용 추적·암호화 저장 지원
FreeLLMAPI란?
FreeLLMAPI는 여러 LLM 제공자의 무료 티어 액세스를 단일 API 엔드포인트 뒤로 통합하는 OpenAI 호환 프록시 서버입니다. 각 제공자별로 별도 SDK를 설정하거나 다른 속도 제한을 처리하는 대신, OpenAI 호환 클라이언트를 프록시에 연결하고 하나의 엔드포인트로 요청을 보냅니다.
이 프로젝트는 개인 실험용으로 설계되었습니다. ~14개 제공자의 키를 집계(제공자 어댑터経由)하고, 각 요청을 사용 가능한 모델로 라우팅하며, 제공자가 속도 제한되거나 오류 발생 시 자동 failover를 수행합니다.
주요 기능
- OpenAI 호환 엔드포인트:
POST /v1/chat/completions와GET /v1/models를 구현하여 OpenAI SDK 및 기타 OpenAI 호환 클라이언트가base_url만 변경하면 작동합니다. - 스트리밍 지원:
stream: true일 때 서버가 **Server-Sent Events (SSE)**로 응답을 반환; 그렇지 않으면 표준 JSON 응답을 반환합니다. - 도구 호출 패스스루: OpenAI 스타일
tools/tool_choice요청을 지원하고, 어시스턴트tool_calls와 후속tool역할 메시지를 제공자 어댑터로 전달합니다. - 자동 failover 및 재시도: 선택된 제공자가 429, 5xx를 반환하거나 타임아웃 시, 라우터가 해당 키를 일시적으로 사용할 수 없음으로 표시하고 대체 체인의 다음 제공자로 최대 20회 재시도합니다.
- 키별 사용량 추적(제공자 한도 대비):
(platform, model, key)별 RPM, RPD, TPM, TPD를 추적하고 무료 티어 한도 미만 키를 선택합니다. - 스티키 멀티턴 라우팅: 대화 중 모델 스위치를 줄이기 위해 30분 동안 동일 모델 유지.
- 암호화 키 저장: 상위 제공자 키를 AES-256-GCM으로 암호화한 후 SQLite에 저장; 사용 직전 메모리 내 복호화.
- 통합 프록시 인증: 클라이언트가 상위 제공자 키 대신 단일
freellmapi-...베어러 토큰으로 프록시에 인증. - 헬스 체크 및 관리 제어: 주기적 프로브로 키를 healthy/속도 제한/유효하지 않음/오류로 라벨링; 포함된 관리 대시보드(React + Vite)로 키 관리, 대체 우선순위 재정렬, 분석 검사, 프롬프트 플레이그라운드 실행.
FreeLLMAPI 사용 방법
- 필수 요구사항 설치: **Node.js 20+**와 npm 사용.
- 클론 및 설치:
git clone https://github.com/tashfeenahmed/freellmapi.gitcd freellmapinpm install
- 환경 설정:
- 예제 env 복사:
cp .env.example .env .env에ENCRYPTION_KEY생성하여 입력(리포지토리가 랜덤 32바이트 hex 키 출력 명령 제공).
- 예제 env 복사:
- 프록시 시작: 리포지토리 빠른 시작 / README에 설명된 대로 서버 실행(페이지 콘텐츠 발췌에 설정 단계 포함, 리포지토리 문서에 정확한 시작 명령).
- OpenAI 호환 클라이언트 설정:
- 클라이언트
base_url을 로컬 FreeLLMAPI 서버로 설정. - 프록시 베어러 토큰(
freellmapi-...)으로 인증하고POST /v1/chat/completions호출(stream: true옵션).
- 클라이언트
사용 사례
- 하나의 코드베이스에서 제공자 간 채팅 테스트: 기존 OpenAI 호환 앱(또는 라이브러리)을 프록시에 연결해 별도 제공자 SDK 관리 없이 여러 모델 실험.
- 수동 속도 제한 실패 감소: 429/5xx/타임아웃 응답 제공자를 자동 failover로 건너뛰고 설정된 대체 순서의 다음 모델로 요청 계속.
- 도구 사용 채팅 흐름:
tool_calls와 도구 결과 메시지가 동일한 프록시 흐름으로 라우팅되는 OpenAI 스타일 도구 호출 요청 실행. - 장기 대화 일관성: 활성 사용 중 동일 모델 유지(30분 스티키 세션)하면서 제공자 미사용 시 대체 혜택.
- 암호화 키 처리 로컬 실험: 클라이언트 앱이 제공자 키 노출하지 않도록 프록시 내 상위 키 중앙화 및 저장 시 암호화.
자주 묻는 질문
-
FreeLLMAPI가 전체 OpenAI API를 지원하나요? 아니요. 채팅 완성 및 모델 목록(
/v1/chat/completions,/v1/models)에 초점. 임베딩, 이미지, 오디오/음성, 멀티모달 입력은 지원하지 않으며, 레거시/v1/completions, moderation, 요청당 다중 완성도 미지원. -
FreeLLMAPI가 속도 제한을 어떻게 처리하나요? 키별 사용량 카운터(RPM/RPD/TPM/TPD)를 추적하고 한도 미만 키 선택. 제공자가 여전히 429(또는 5xx/타임아웃) 반환 시 대체 체인의 다음 제공자로 재시도.
-
내 클라이언트에서 스트리밍이 작동하나요? 네. 채팅 엔드포인트에서
stream: true시 SSE를 통한 스트리밍 지원. -
기존 OpenAI 호환 라이브러리를 사용할 수 있나요? 공식 OpenAI SDK 및 기타 OpenAI 호환 클라이언트를 프록시
base_url로 가리키면 작동하도록 의도. -
프로덕션 사용을 위한 건가요? 리포지토리가 “개인 실험 전용”이라고 명시.
대안
- 단일 제공자를 직접 사용: 많은 서비스가 일관된 의미론의 자체 API를 제공하지만, 다중 제공자 집계, 자동 페일오버, 단일 엔드포인트에서의 무료 티어 스태킹을 얻을 수 없습니다.
- 자체 라우터/페일백 레이어 구축: 커스텀 프록시는 페일오버와 키 로테이션을 구현할 수 있지만, 제공자별 SDK, 제한, 오류 처리를 직접 관리해야 합니다.
- 다중 LLM 백엔드를 지원하는 오케스트레이션 프레임워크 사용: 일부 도구는 요청을 다른 모델 제공자로 라우팅하지만, 워크플로가 다를 수 있으며(여기 설명된 동일한 OpenAI 호환
/v1/chat/completions프록시 동작을 제공하지 않을 수 있음), 차이가 있을 수 있습니다. - 수동 키 및 모델 전환: 애플리케이션에서 제공자를 수동으로 선택할 수 있지만, FreeLLMAPI가 제공하는 자동 재시도/페일오버와 키별 사용량 추적을 잃게 됩니다.
대안
AakarDev AI
AakarDev AI는 원활한 벡터 데이터베이스 통합을 통해 AI 애플리케이션 개발을 간소화하는 강력한 플랫폼으로, 신속한 배포와 확장성을 가능하게 합니다.
BookAI.chat
BookAI는 제목과 저자를 제공하기만 하면 AI를 사용하여 책과 대화할 수 있게 해줍니다.
skills-janitor
skills-janitor로 Claude Code 기술을 감사하고 사용량을 추적하며, 9가지 슬래시 커맨드로 자신의 능력을 비교하세요. 의존성 0.
FeelFish
FeelFish AI 소설 집필 에이전트 PC 클라이언트로 등장인물·배경을 기획하고 장을 생성·편집하며, 맥락 일관성으로 줄거리를 이어가세요.
BenchSpan
BenchSpan은 AI 에이전트 벤치마크를 병렬 실행하고 점수·실패를 실행 이력으로 정리하며, 커밋 태그로 재현 가능한 결과 비교를 돕습니다.
ChatBA
ChatBA는 채팅형 워크플로로 입력을 바탕으로 슬라이드 덱 콘텐츠를 빠르게 생성하는 생성형 AI입니다.