GoModel – Go로 작성된 오픈소스 AI Gateway
Show HN: GoModel – an open-source AI gateway in Go
TL;DR Highlight
OpenAI, Anthropic, Gemini 등 여러 AI 프로바이더를 하나의 OpenAI 호환 API로 묶어주는 Go 기반 오픈소스 AI 게이트웨이로, LiteLLM의 컴파일 언어 대안이다.
Who Should Read
여러 LLM 프로바이더를 동시에 사용 중인 백엔드 개발자, 또는 LiteLLM을 쓰고 있지만 성능·공급망 보안·Go 생태계 통합에 관심 있는 개발자.
Core Mechanics
- GoModel은 Go로 작성된 AI 게이트웨이로, OpenAI, Anthropic, Gemini, xAI, Groq, OpenRouter, Z.ai, Azure OpenAI, Oracle, Ollama 등 다양한 프로바이더를 단일 OpenAI 호환 API로 통합한다.
- Docker 한 줄 명령으로 바로 띄울 수 있고, 환경변수로 원하는 프로바이더 API 키만 넘기면 된다. 최소한 하나의 프로바이더 키만 있으면 동작한다.
- LiteLLM의 대안으로 포지셔닝하며, observability(모니터링), guardrails(안전 필터), streaming(스트리밍 응답)을 내장 지원한다.
- Go 컴파일 언어 특성상 Python 기반 LiteLLM 대비 런타임 공급망 공격(supply chain attack)에 더 안전하다는 점이 강점으로 언급된다. 컴파일 타임에 의존성이 고정되기 때문이다.
- Prometheus 메트릭 연동을 지원하며, 별도 설정 파일(prometheus.yml)과 docker-compose.yaml이 포함되어 있어 모니터링 환경 구성이 쉽다.
- semantic caching(의미 기반 캐싱) 레이어가 있는 것으로 보이며, 게이트웨이 측에서 요청을 임베딩하고 벡터 유사도 검색으로 캐시 히트 여부를 판단하는 방식으로 추정된다.
- Helm 차트가 포함되어 있어 Kubernetes 환경 배포도 지원한다.
- 현재 GitHub 기준 Star 319개, Fork 20개이며 활발히 커밋 중인 초기 프로젝트다.
Evidence
- Go로 작성된 것이 왜 중요하냐는 질문에 대해, 다른 댓글에서 Go 컴파일 바이너리는 런타임 공급망 공격 표면이 Python 기반 도구보다 훨씬 작다는 반론이 제기됐다. 실제로 비슷한 Go 게이트웨이(sbproxy.dev)를 만든 개발자가 이를 직접 언급했다.
- AI 프록시를 직접 만들고 유지보수해본 경험자는 '모델·프로바이더 릴리즈 때마다 입출력 구조가 달라지는 것이 가장 힘든 점'이라며, 새 모델 출시 후 24시간 내 통합이 안 되면 제대로 관리되는 프로젝트가 아니라고 평가했다.
- Go SDK가 JavaScript·Python에 비해 부족해서 프로바이더 업데이트 때마다 직접 따라가야 한다는 유지보수 부담을 우려하는 의견이 있었고, 작성자도 이를 주요 도전과제로 인식하고 있는 것으로 보인다.
- vllm(성능 높은 로컬 모델 서빙 도구)을 쓰는 사용자가 Ollama 대신 vllm 연동 방법을 물었고, 비용 추적(cost tracking per model/route) 기능에 대한 요청도 있었다. 특히 무료·유료 모델을 혼합해 쓸 때 어디서 비용이 발생하는지 파악하는 게 중요하다는 실사용 경험이 공유됐다.
- 'LiteLLM처럼 오픈소스 rug pull(처음엔 오픈소스로 공개했다가 나중에 상용화하는 것)을 할 계획이냐'는 날카로운 질문도 있었다. 또한 진정한 unified API라면 temperature, reasoning effort, tool choice mode 같은 프로바이더별 파라미터 차이도 추상화해줘야 한다는 의견도 제기됐다.
How to Apply
- 여러 LLM 프로바이더를 쓰는 서비스에서 모델 교체 때마다 클라이언트 코드를 수정하고 싶지 않다면, GoModel을 중간 게이트웨이로 올리고 모든 요청을 `http://localhost:8080`의 OpenAI 호환 엔드포인트로 보내면 된다. 프로바이더 전환은 환경변수만 바꾸면 된다.
- LiteLLM을 운영 중인데 Python 런타임의 공급망 보안이 걱정되거나 메모리·성능 오버헤드가 문제라면, GoModel로 교체를 검토할 수 있다. 컴파일 바이너리라 런타임 의존성이 없고, Docker 이미지도 가볍다.
- Kubernetes 환경에서 AI 트래픽을 중앙 관리하고 싶다면, 포함된 Helm 차트를 활용해 GoModel을 클러스터에 배포하고 Prometheus와 연동해 모델별 응답 시간·에러율을 모니터링할 수 있다.
- 팀 내에서 여러 명이 각기 다른 AI 프로바이더 키를 직접 관리하는 상황이라면, GoModel을 내부 게이트웨이로 두고 팀원들은 GoModel 엔드포인트만 바라보게 하면 키 관리 포인트를 단일화할 수 있다.
Code Example
# 최소 실행 (OpenAI만 사용)
docker run --rm -p 8080:8080 \
-e OPENAI_API_KEY="your-openai-key" \
enterpilot/gomodel
# 여러 프로바이더 동시 사용
docker run --rm -p 8080:8080 \
-e OPENAI_API_KEY="your-openai-key" \
-e ANTHROPIC_API_KEY="your-anthropic-key" \
-e GEMINI_API_KEY="your-gemini-key" \
-e GROQ_API_KEY="your-groq-key" \
-e OPENROUTER_API_KEY="your-openrouter-key" \
-e XAI_API_KEY="your-xai-key" \
-e AZURE_API_KEY="your-azure-key" \
-e AZURE_BASE_URL="https://your-resource.openai.azure.com/openai/deployments/your-deployment" \
-e AZURE_API_VERSION="2024-10-21" \
enterpilot/gomodel
# 이후 클라이언트에서는 base_url만 변경
# openai.OpenAI(base_url="http://localhost:8080", api_key="any-value")Terminology
관련 논문
Swift로 LLM 학습시키기 Part 1: 행렬 곱셈을 Gflop/s에서 Tflop/s로 끌어올리기
Apple Silicon에서 Swift로 직접 행렬 곱셈 커널을 구현하며 CPU, SIMD, AMX, GPU(Metal)를 단계별로 최적화해 Gflop/s에서 Tflop/s 수준까지 성능을 높이는 과정을 상세히 설명한 글이다. 프레임워크 없이 LLM 학습의 핵심 연산을 밑바닥부터 구현하고 싶은 개발자에게 Apple Silicon의 성능 한계를 체감할 수 있는 드문 자료다.
fsync 없이 로컬 스토리지 엔진을 crash-consistent하게 만든 방법
FractalBits가 fsync 없이 SSD 전용 KV 스토리지 엔진을 구현해 동일 조건 대비 약 65% 높은 쓰기 성능을 달성한 설계 방법을 공유했다. fsync의 메타데이터 오버헤드를 피하기 위해 사전 할당, O_DIRECT, SSD 원자 쓰기 단위 정렬 저널을 조합한 구조가 핵심이다.
Google Chrome, 사용자 동의 없이 4GB AI 모델(Gemini Nano)을 몰래 설치
Google Chrome이 사용자 동의 없이 Gemini Nano 4GB 모델 파일을 자동 다운로드하고, 삭제해도 재다운로드되는 문제가 발견됐다. GDPR 위반 가능성과 수십억 대 기기에 적용될 때의 환경 비용 문제가 제기되고 있다.
OpenAI가 대규모 저지연 Voice AI를 제공하는 방법
OpenAI가 9억 명 이상의 사용자에게 실시간 음성 AI를 제공하기 위해 WebRTC 스택을 어떻게 재설계했는지 설명하는 글로, relay + transceiver 분리 아키텍처의 설계 결정과 trade-off를 상세히 다룬다.
Truncated Decoding Tree의 결정론적 탐색을 통한 효율적인 Test-Time Inference
Self-consistency의 중복 샘플링 낭비를 없애는 결정론적 트리 탐색 디코딩 기법 DLE로 수학/코드 추론 성능과 속도를 동시에 개선
Claude Token Counter 업그레이드: 모델 간 토크나이저 비교 기능 추가
Claude Opus 4.7이 새 토크나이저를 도입하면서 같은 입력에 대해 최대 1.46배 더 많은 토큰을 소비한다는 사실이 확인됐고, 이는 사실상 40% 이상의 비용 인상 효과다.