Show HN: Frugon – Find which LLM calls a cheaper model could handle (local, MIT)
TL;DR Highlight
내 LLM API 비용이 어디서 새는지 로컬에서 분석해주는 오픈소스 CLI 도구로, 비싼 모델 대신 저렴한 모델로 전환 가능한 호출을 골라낸다.
Who Should Read
GPT-4o나 Claude 같은 고가 모델을 API로 호출하고 있는데 월별 LLM 비용이 부담되는 백엔드 개발자나 AI 서비스 운영자.
Core Mechanics
- Frugon은 LLM API 호출 로그(JSONL 형식)를 받아서, 각 호출이 더 저렴한 모델로도 충분히 처리 가능한지 분석해주는 로컬 실행 CLI 도구다.
- 데이터가 외부 서버로 나가지 않고 완전히 로컬에서 동작한다. API 키도 사용자가 직접 자신의 provider에 연결하는 방식이라 보안 측면에서 안전하다.
- 로그를 얻는 방법이 두 가지다. 이미 로그가 있으면 바로 분석할 수 있고, 없으면 frugon capture라는 로컬 HTTP 프록시를 띄워서 앱과 OpenAI 사이에 끼워넣어 자동으로 JSONL 파일로 저장할 수 있다.
- frugon capture를 쓰면 앱의 OPENAI_BASE_URL만 http://127.0.0.1:8787로 바꾸면 된다. 실제 API 요청은 그대로 원본 provider로 포워딩되고, 동시에 로컬 파일에도 저장된다.
- --measure 옵션을 사용하면 실제 프롬프트를 저렴한 후보 모델로 직접 샘플링해서 응답 품질을 비교해볼 수 있다. 이때 pip install 'frugon[measure]'로 추가 의존성을 설치해야 한다.
- --judge 기능도 있어서 저렴한 모델의 응답이 원래 모델과 비교해 '무승부(tie)' 혹은 수용 가능한 수준인지를 LLM-as-a-judge 방식으로 평가한다.
- 설치 없이 uvx frugon analyze ./logs.jsonl 한 줄로 바로 실행 가능하고, 데모 데이터로도 테스트해볼 수 있다(frugon analyze --demo).
- MIT 라이선스 오픈소스이며, Python 기반으로 pyproject.toml과 uv.lock을 사용한다.
Evidence
- 가장 많이 언급된 아이디어는 '입력 토큰을 먼저 분석해서 자동으로 적절한 모델을 라우팅해주는 AI 게이트웨이'에 대한 수요다. Frugon처럼 사후 분석 도구도 좋지만, 실시간으로 요청 복잡도를 판단해서 싼 모델은 Qwen 같은 모델로, 복잡한 건 GPT-5급으로 자동 분기하는 라우터가 필요하다는 의견이 나왔다.
- --judge 커맨드가 응답 품질을 어떻게 평가하는지 궁금하다는 질문이 있었다. 구체적으로 'tie'로 판정하는 기준이 어떤 LLM-as-a-judge 프롬프트 템플릿을 쓰는지 물어봤는데, 원문에는 상세 설명이 없어서 커뮤니티에서도 명확한 답변은 없었다.
- 로컬 모델로의 전환 가능성을 분석하는 기능이 다음 발전 방향이 될 것이라는 의견이 있었다. 이를 위해서는 단순 비용뿐 아니라 응답 시간도 측정 지표로 추가해야 한다는 구체적인 제안이 나왔다. '로컬 모델이 허용 가능한 정확도를 허용 가능한 시간 내에 낼 수 있느냐'가 핵심이라는 것이다.
- OpenInference(OpenTelemetry 기반 ML 관측 표준)와 연계하면 더 유용할 것이라는 의견도 있었다. 모델 라우팅 문제를 '수렴 비용 최소화' 문제로 보고, Evolutionary Algorithm이나 Gradient Descent 식의 접근을 적용할 수 있다는 다소 학문적인 관점도 제시됐다.
- 이 정보를 실제로 어떻게 운영에 적용할 수 있는지 불분명하다는 비판적 시각도 있었다. '비용 분석 결과를 보고 나서 실제로 모델을 바꾸는 작업을 어떻게 자동화할 것인가'라는 operationalize 문제가 해결되지 않으면 단순한 리포트 툴에 그친다는 지적이다.
How to Apply
- 이미 OpenAI SDK로 API를 호출하고 있고 로그가 JSONL 형태로 있다면, uvx frugon analyze ./logs.jsonl 한 줄로 설치 없이 바로 실행해서 어떤 호출이 더 싼 모델로 대체 가능한지 확인할 수 있다.
- 로그가 없는 경우, frugon capture --out ./logs.jsonl로 로컬 프록시를 띄운 다음 앱의 base URL을 http://127.0.0.1:8787로 바꾸면 기존 코드 수정 없이 모든 API 호출이 자동으로 캡처된다. 일정 기간 운영 후 누적된 로그로 분석하면 실제 트래픽 패턴 기반의 비용 절감 포인트를 찾을 수 있다.
- 단순 토큰 수 비교가 아니라 실제 응답 품질도 확인하고 싶다면 pip install 'frugon[measure]'로 추가 설치 후 --measure 옵션을 붙여 실행하면, 실제 프롬프트를 후보 모델로 샘플링해서 품질 차이를 직접 비교해볼 수 있다.
- 여러 provider나 모델 간 비용을 비교하고 싶은 경우, 동일한 JSONL 로그를 대상으로 다른 모델 파라미터를 바꿔가며 analyze를 반복 실행하면 모델별 비용 시뮬레이션 결과를 얻을 수 있다.
Code Example
# 설치 없이 바로 실행
uvx frugon analyze ./logs.jsonl
# 영구 설치 후 실행
pipx install frugon
frugon analyze ./logs.jsonl
# 실제 프롬프트를 후보 모델로 샘플링해서 품질 비교
pip install 'frugon[measure]'
frugon analyze ./logs.jsonl --measure
# 데모 데이터로 테스트
frugon analyze --demo
# 로컬 프록시 캡처 (로그가 없을 때)
frugon capture --out ./logs.jsonl
# 앱에서 base URL 변경 (bash/zsh)
OPENAI_BASE_URL=http://127.0.0.1:8787 your-app
# PowerShell (Windows)
$env:OPENAI_BASE_URL="http://127.0.0.1:8787"; your-app
# Python 코드에서 변경
client = OpenAI(base_url="http://127.0.0.1:8787/v1")Terminology
Related Papers
Jamesob's guide to running SOTA LLMs locally
2천 달러짜리 RTX 3090 한 장부터 4만 달러짜리 RTX PRO 6000 4장 셋업까지, 로컬에서 최신 LLM을 직접 돌리는 방법을 하드웨어 선택·구성·실행 설정까지 통째로 정리한 실전 가이드다.
Faster embeddings: how we rebuilt the ONNX path in Manticore
Manticore Search가 기존 SentenceTransformers/Candle 백엔드를 ONNX Runtime으로 교체해 텍스트 임베딩 생성 속도를 평균 14배 향상시켰다. 별도 모델 서비스 없이 DB 내부에서 직접 임베딩을 처리하는 구조에서 INSERT 속도가 곧 임베딩 속도이기 때문에 이 개선은 실질적인 ingest 처리량 향상으로 직결된다.
Asymmetric Quantization: Near-Lossless Retrieval with 97% Storage Reduction
멀티벡터 검색 모델의 문서 벡터를 1비트 이진값으로 압축하고 쿼리 벡터만 int8로 유지하는 비대칭 양자화 기법으로, 스토리지를 97% 줄이면서 검색 품질 손실을 0.61점(NDCG@10 기준)에 그치게 만든 실제 프로덕션 적용 사례다.
Show HN: Bash4LLM+ – A lightweight, dependency-free Bash wrapper for LLM APIs
Python이나 Node.js 없이 순수 Bash만으로 Groq 등 OpenAI 호환 LLM API를 호출할 수 있는 단일 스크립트 도구로, Termux(Android)를 포함한 모든 Unix 환경에서 동작한다.
Wayfinder Router: deterministic routing of queries between local and hosted LLM
프롬프트의 복잡도를 모델 호출 없이 오프라인으로 점수화해서 간단한 쿼리는 로컬 모델로, 어려운 쿼리는 유료 모델로 자동 라우팅하는 CLI 도구다. LLM 비용을 줄이면서도 응답 품질을 유지하고 싶은 개발자에게 유용하다.
Apple Neural Engine: Architecture, Programming, and Performance
Apple 기기에 내장된 AI 전용 칩인 ANE(Apple Neural Engine)를 리버스 엔지니어링으로 분석한 302페이지짜리 기술 문서로, Core ML 아래 숨겨진 내부 구조와 직접 접근 경로를 처음으로 공개한다.