freellmapi 솔직 사용후기 - 무료 모델 412개를 하룻동안 진짜 워크로드에 붙여본 결과
TL;DR
- freellmapi = 셀프호스팅 통합 LLM 게이트웨이. 무료 티어 공급자 34곳·카탈로그 412모델을 단일 API 키로 쓰게 해주는 오픈소스. 나는 3일간 진짜 워크로드(메모리 회상 엔진)에 붙여 실했다.
- 결론부터: 실험·백업 레인으로는 강력 추천, 지연 민감 프로덕션으로는 비추천. 같은 설정에서 유료 소형 모델이 21초 걸리는 걸 무료 풀은 44~166초에 끝냈다.
- 다만 "무료 모델 풀 자동 라우팅"이라는 약속 자체는 지켰다 - 스마티스트 전략 5회 전부 완주, 팩트 정확도도 충족. 문제는 속도와 언어 일관성이었다.
- 이 글은 하루 5구성 벤치, 141모델 풀 확장, 전략별 스윕을 전부 실측한 후기다. 마케팅 문장 0.
이게 뭔가
freellmapi는 무료로 쓸 수 있는 LLM 공급자들(AI Horde, NVIDIA, Cloudflare Workers AI, Groq, Google, OpenRouter free 풀, 그리고 수십 개의 커뮤니티 게이트웨이)을 하나로 묶어 OpenAI 호환 /v1 엔드포인트로 내주는 자가호스팅 게이트웨이다. 핵심 기능:
- 가상
auto모델 - 모델명을 비우거나 "auto"로 보내면 게이트웨이가 알아서 고른다. 전략 프리셋:priority / balanced / smartest / fastest / reliable / custom / decision min_context_window컷 - '32k/128k/512k/1m' 프리셋으로 작은 컨텍스트 모델을 풀에서 통째로 제외- 프로필·스티키 세션·응답 캐시·쿼터 관측·레이트리밋 쿨다운 같은 운영 기능
- sqlite 한 장으로 돌아가고, 설정은 대시보드에서 바꾸면 핫리로드된다 (재시작 불필요)
나는 자가호스팅 기억 엔진(Honcho)의 회상 회로(dialectic)에 이 게이트웨이를 물리는 실험을 했다. 회상 = "저장된 기억 16K를 읽고 정확히 대답하는" 작업. 느리고 엉터리면 즉시 들통나는 워크로드다.
3일간의 실측: 같은 일을 5가지 방법으로
동일 프로토콜(기억 속 팩트 3개를 답하는 질의 × 5~10회):
| 구성 | 라우팅된 모델 | 평균 지연 | 팩트 정확도 | 언어 |
|---|---|---|---|---|
| 유료 기준점 (haiku-5.5) | - | 20.9s | 30/30 | 한글 고정 |
| smartest + 1M 컷 | nemotron-3-ultra-550b | 103.9s | 5/5 | 영어 2/5 |
| fastest + 1M 컷 | gemini-3.1-flash-lite | 11~15s | 0/5 ⚠ | 한글 |
| smartest + 128k 컷 | dots-3-note-preview | 85.8s | 4.5/5 | 한글 |
| ↑ 여기서 +141모델 확장 후 | dots/nemotron/sensenova가 매번 다름 | 113.6s | 5/5 | 영어 1/5 |
여기서 읽어야 할 것 세 가지.
1. fastest 전략은 "회상"에 쓰면 안 된다. 11초 만에 답은 오는데, 내용이 "품질 개선을 고민 중" 수준의 일반론이 된다. 기억 속 수치(F1 목표치, 에폭별 점수)를 하나도 안 가져온다. 빠른 엉터리는 목적 달성이 아니다 - 이건 게이트웨이 탓이 아니라 전략 선택의 책임이 사용자에게 있다는 뜻이지만, 전략 이름만 보고 고르면 반드시 빠지는 함정이다.
2. 풀을 넓힌다고 좋아지지 않는다. 1M 컷(모델 몇 개 안 남음)을 128k로 낮추자 후보가 늘었고, 처음엔 dots-3-note-preview라는 괜찮은 모델에 안정적으로 꽂혔다. 그런데 무료 공급자 4곳의 키를 더 넣어 141모델로 확장하자 라우팅이 오히려 요동쳤다 - 호출마다 다른 모델로 튀고 평균 지연이 85.8s→113.6s로 증가. 무료 풀의 상태 변동·지연 편차가 근본 원인이라 후보 수를 늘리는 건 해결책이 아니었다.
3. 카탈로그 랭크는 사실이 아니다. 카탈로그에는 intelligence rank 17짜리 GLM 5.3·Qwen3.8 Max(1M)가 최상위로 보이는데, 실제로는 살아있는 업스트림 키가 없어서 라우팅 풀에서 빠져 있었다. "카탈로그에 있다"와 "쓸 수 있다"는 다르다 - 이건 운영자가 키를 다 넣으면 해소되지만, 문서에는 이差距가 안 보인다.
좋았던 것 (지운 말로)
- 무료 풀 애그리게이션이 실제로 동작한다. 5개 공급자에 자동 가입해 키를 넣었더니 141개 모델이 즉시 편입됐고(프로필의 auto_include), 실제 완주율도 만점이었다. "무료로 여러 모델 실험하는 인프라"라는 목적에는 필요충분.
- 설정 핫리로드가 철저하다. 라우팅 전략·컨텍스트 컷을 sqlite에서 직접 고쳤는데 매 호출마다 DB를 다시 읽어 재시작이 필요 없었다. 운영자 입장에서 스위치를 끄고 켜는 체험이 좋다.
- 관측성이 DB 수준으로 열려 있다. requests, decision_requests, provider_quota_state, rate_limit_cooldown 테이블까지 - "왜 이 모델이 골라졌지?"를 추적할 수 있었다. 자가호스팅의 특권을 잘 살린 설계.
- 클라이언트 호환성. OpenAI/Anthropic/Gemini 헤더를 전부 받고, 유니파이드 키 하나로 끝난다. Honcho처럼
model필드를 강요하는 클라이언트를 위한 가상auto아이디 배려도 디테일.
아쉬웠던 것 (솔직하게)
- 지연 분산이 크다. 같은 전략, 같은 질의인데 43초~166초. 무료 풀의 본질적 한계지만, "적당히 일관된" 서비스를 기대하면 실망한다.
- 언어 룰렛. 같은 전략인데 호출마다 다른 모델로 라우팅되면서 답변이 한글/영어를 오간다. 회상 엔진에선 치명적. (시스템 프롬프트 프로필로 강제할 수는 있다 - 안 써본 건 아니고 안 태웠다)
- 문서가 코드만 믿는다. Cloudflare 키는
account_id:api_token합성 포맷인데 이건 소스 코드에만 있다. 대시보드는 SPA라/openapi.json도 없다. 삽질 각오 필수. - 스티키 세션이 실험 재현성을 해친다. 메시지 해시 기반으로 모델이 고정되는데, 벤치엔 방해요소. 끄는 스위치는 아직 못 찾았다.
누구에게 추천하나
- 강력 추천: 무료 모델 스윕 벤치 인프라, 백업/폴백 레인, "이 작업 무료 모델로 가능한가"를 확인하는 실험대. 오늘 우리 환경에서 dialectic 회상용 후보 141개를 하루 만에 돌릴 수 있었던 건 전부 이 게이트웨이 덕이다.
- 비추천: 지연 민감 프로덕션(사용자 대면 회상·챗). 유료 소형 모델 $0.0135가 주는 21초·100%·언어 고정을 무료가 못 이긴다 - 오늘 다시 확인했다.
- 조건부: 느려도 되는 심층 작업(야간 배치 요약 등)은 무료 풀 + smartest 조합이 실제로 잘 맞물린다. 단, 언어 고정 시스템 프롬프트를 프로필로 강제할 것.
운영 팁 (직접 밟은 것)
- 컨텍스트 컷을 1M로 올리면 풀이 좁아져 특정 공급자에 사용량이 몰린다 - 128k가 실전 스윗스팟
- 설정은 대시보드 말고 sqlite
settings테이블 직접 수정도 먹는다 (핫리로드됨) - 클라이언트용 키가 만료·분실되면 DB
settings.unified_api_key에서 회수 가능 - 카탈로그 rank를 믿지 말고, 키 넣고 실제 auto 호출 한 번으로 라우팅 결과를 확인할 것
총평
실험 인프라로는 9/10, 프로덕션 회상으로는 4/10. 이 프로젝트가 해결하는 문제("무료 모델을 하나의 키로")를 정직하게 해결하며, 운영 기능(쿼터 관측·쿨다운·프로필)의 깊이가 상상 이상이다. 다만 무료 풀 자체의 물리 - 지연 편차, 모델 상태 변동, 언어 - 는 아무 게이트웨이도 풀어줄 수 없다. freellmapi는 그 무게를 정직하게 사용자에게 넘긴다. 나는 그 정직함이 좋았다.
실측 환경: 자가호스팅 freellmapi (docker), 412모델 카탈로그, 2026-10-29~31. 워크로드: Honcho dialectic 16K 기억 컨텍스트 회상. 비교 기준점: OpenRouter 경유 haiku-5.5.


