OlliteRT: 안드로이드 폰을 OpenAI 호환 로컬 LLM 서버로 변환
요약
OlliteRT는 안드로이드 스마트폰을 OpenAI 호환 로컬 LLM 서버로 변환해주는 오픈 소스 도구입니다. Google의 LiteRT-LM 런타임을 활용하여 모바일 GPU/CPU에서 모델을 실행하며, 클라우드 없이 프라이빗한 환경에서 API 서비스를 제공합니다.
핵심 포인트
- 안드로이드 기기를 OpenAI 호환 HTTP API 서버로 활용 가능
- LiteRT-LM 기반의 모바일 GPU/CPU 가속 지원
- 멀티모달, 도구 호출 및 실시간 모니터링 기능 제공
- 저전력 설계로 오래된 스마트폰을 LLM 서버로 재활용 가능
빠른 시작 (Quick Start) | 스크린샷 (Screenshots) |
기능 (Features) | 모델 (Models) | 통합 (Integrations) | API | 자주 묻는 질문 (FAQ) |
버그 보고 (Report a bug)
당신의 안드로이드 폰을 OpenAI 호환 API LLM 서버로 만드세요 — 완전한 로컬, 프라이빗, 그리고 오픈 소스 방식입니다.
안드로이드용 Ollama라고 생각하세요. 모델을 선택하고 시작(Start)을 누르면, 당신의 폰은 LLM 서버가 됩니다. Google의 LiteRT-LM 런타임을 통해 모바일 GPU/CPU에서 LLM을 실행하며, 로컬 네트워크에서 표준 OpenAI 호환 HTTP API로 서비스를 제공합니다.
클라우드 없음. API 키 없음. 구독 없음. 오직 당신의 폰뿐입니다.
멀티 모델 지원 (Multi-model Support)— HuggingFace에서 원터치로 다운로드하거나, 로컬 저장소에서 .litertlm 파일 또는 모델 목록을 가져오거나, JSON 파일 또는 URL을 통해 커스텀 모델 소스를 추가할 수 있습니다.
멀티모달 및 추론 (Multimodal & Reasoning)— 비전(Vision), 오디오(Audio), 사고(Thinking), 스트리밍(Streaming) 지원, 그리고 성능이 뛰어난 모델을 위한 도구 호출(Tool calling, 실험적 기능)을 지원합니다.
벤치마크 내장 (Benchmark Built-in)— 기기에서 모델을 테스트하고 비교하여 하드웨어에 가장 적합한 모델을 찾으세요.
활동 로그 (Activity Logs)— 검색, 필터링 및 JSON 하이라이팅 기능이 포함된 상세한 요청/응답 로그를 제공합니다.
항상 켜져 있는 저전력 (Always On, Low Power)— 부팅 시 자동 시작 설정이 가능하며, GPU 서버의 300W+ 전력 소모와 비교했을 때 약 5-10W를 소모합니다. 서랍 속의 오래된 폰을 활용하기에 완벽합니다.
높은 설정 자유도 (Highly Configurable)— 모델별 추론(Inference) 설정, GPU/CPU 가속기, 유휴(Idle) 모델 언로드, Bearer 토큰 인증 등을 지원합니다.
모델 및 서버 모니터링 (Model & Server Monitoring)— 실시간 통계 대시보드, Grafana를 위한 Prometheus 메트릭, 그리고 원격 서버 제어를 위한 Home Assistant REST API를 제공합니다.
폭넓은 호환성 (Broad Compatibility)— Home Assistant, Open WebUI, OpenClaw, Python, curl — OpenAI와 통신할 수 있다면 무엇이든 작동합니다.
참고
Home Assistant는 현재 음성 명령을 위해 Extended OpenAI Conversation 또는 Local OpenAI LLM 및 OpenAI STT와 같은 커스텀 통합(Integration)이 필요합니다 — Home Assistant 클라이언트 설정을 참조하세요.
- 저는 배터리 부풀음, 폰 타버림, 또는 갑작스러운 주머니 속 발열에 대해 책임을 지지 않습니다. 베개 아래에 폰을 둔 채로 LLM을 실행하지 마세요. 경고했습니다.
APK를 다운로드 및 설치하세요

모델 다운로드— 대부분의 기기에는 Gemma 4 E2B를 권장합니다 (2.4 GB, 8 GB RAM에서 실행 가능)
서버 시작— 다운로드한 모델 카드에서 Start Server 버튼을 누르세요
클라이언트 설정— Status 화면에 표시된 엔드포인트(예: http://PHONE_IP:8000/v1)를 Open WebUI, OpenClaw, Home Assistant, Python 등 모든 OpenAI 호환 클라이언트와 함께 사용하세요. 자세한 가이드는 Client Setup을 참조하세요.
중요 사항
요구 사항: Android 12 이상 · arm64-v8a 기기 · 최소 6 GB RAM · 멀티모달 (multimodal) 모델의 경우 8 GB 이상 권장 (모델 표 참조)
| 모델 | 크기 | 최소 RAM | 컨텍스트 (Context) | 기능 (Capabilities) |
|---|---|---|---|---|
| Gemma 4 E2B ⭐ | 2.4 GB | 8 GB | 32K | 텍스트 · 비전 · 오디오 · 사고 (Thinking) · 도구 (Tools) · MTP |
| Gemma 4 E4B ⭐ | 3.4 GB | 12 GB | 32K | 텍스트 · 비전 · 오디오 · 사고 (Thinking) · 도구 (Tools) · MTP |
| Gemma 3n E2B | 3.4 GB | 8 GB | 4K | 텍스트 · 비전 · 오디오 |
| Gemma 3n E4B | 4.6 GB | 12 GB | 4K | 텍스트 · 비전 · 오디오 |
| Gemma 3 1B | 0.5 GB | 6 GB | 1K | 텍스트 |
| Qwen 2.5 1.5B | 1.5 GB | 6 GB | 4K | 텍스트 |
| DeepSeek-R1 1.5B | 1.7 GB | 6 GB | 4K | 텍스트 |
⭐ 권장 — 대부분의 기기에는 E2B, 고사양 기기에는 E4B
참고
도구 호출 (Tool calling)은 실험적이며 모델의 한계로 인해 항상 안정적이지 않을 수 있습니다.
권장 사항, 기능 상세 정보 및 가져오기(import) 지침은 Model Guide를 참조하세요.
Prometheus 메트릭 (metrics)— Grafana, Datadog 등을 위한 29개의 메트릭이 포함된 /metrics 엔드포인트
Home Assistant REST API— 서버 상태 모니터링, 모델 제어, 원격 설정 업데이트
사용 가능한 엔드포인트 — 클릭하여 확장
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/chat/completions | OpenAI Chat Completions API (스트리밍 + 비스트리밍) |
POST | /v1/completions | OpenAI Completions API |
POST | /v1/responses | OpenAI Responses API |
POST | /v1/messages | Anthropic Messages API (스트리밍 + 비스트리밍) |
POST | /v1/messages/count_tokens | Anthropic 입력 토큰 추정기 |
POST | /v1/audio/transcriptions | 오디오 전사(Audio transcription) |
GET | /v1/models | 사용 가능한 모델 목록 조회 |
GET | /v1/models/{id} | 특정 모델 상세 정보 조회 |
GET | / 또는 /v1 | 서버 정보 (버전, 상태, 엔드포인트) |
GET | /health | 건강 검사(선택적 ?metrics=true 포함) |
GET | /metrics | Prometheus 메트릭스 |
GET | /ping | 간단한 활성 상태 확인 (liveness check) |
전체 API 문서 및 예시: docs/api/API.md
알려진 제한 사항 — 클릭하여 확장
arm64-v8a 전용 — 다른 아키텍처(armeabi-v7a, x86, x86_64)는 지원하지 않습니다. LiteRT 런타임은 x86_64용 네이티브 라이브러리를 제공하지만, 지원되지 않는 CPU 명령어 때문에 Android 에뮬레이터에서 충돌합니다. 2017년 이후의 거의 모든 Android 기기는 arm64-v8a입니다.단일 모델, 단일 요청 — 한 번에 하나의 모델만 로드하며, 요청은 순차적으로 대기열 처리됩니다 (LiteRT SDK 제한). 클라이언트 요청을 통한 온디맨드(on-demand) 모델 로딩은 향후 릴리스에서 계획되어 있습니다.도구 호출은 실험적 기능 — LiteRT SDK의 전체 네이티브 도구 호출 기능은 현재 작동하지 않으므로, OlliteRT는 구조화된 출력을 위해 스키마 주입(SDK를 통해 모델 컨텍스트에 도구 스키마 주입)을 사용합니다. 스키마 주입이 모델과 작동하지 않을 경우 프롬프트 기반 대체 방안을 사용할 수 있습니다. 결과는 다를 수 있으며, Gemma 4 모델에서 가장 잘 작동합니다.토큰 수는 추정치입니다 — LiteRT 런타임은 토크나이저 API를 노출하지 않으므로, 카운트는 문자 길이 ÷ 4를 사용하여 근사치를 계산합니다.
영어 텍스트의 경우 상당히 정확하지만, 코드나 다국어 콘텐츠의 경우 정확도가 떨어질 수 있습니다.가져온 모델은 앱 저장소로 복사됩니다— 기기에서 모델을 가져올 때 파일은 이동되는 것이 아니라 복사됩니다. 공간을 확보하려면 가져오기 후에 원본을 삭제할 수 있습니다.GGUF 미지원— .litertlm 모델만 지원됩니다 (LiteRT 런타임의 제한 사항). 모델은 HuggingFace의 LiteRT Community에서 이용할 수 있습니다. 숙련된 사용자는 Google의 litert-torch 도구(Linux, 32GB 이상의 RAM 필요)를 사용하여 HuggingFace 모델을 .litertlm으로 변환할 수 있습니다.LiteRT 런타임 제약 사항— OlliteRT는 모바일에 최적화된 Google의 LiteRT-LM 런타임 기반으로 구축되었습니다. logprobs, 문법 기반 출력 제약(grammar-based output constraints), 반복 페널티(repetition penalties), LoRA 어댑터와 같은 기능은 사용할 수 없습니다.
FAQ— 모델 지원, 개인정보 보호, 배터리, 아키텍처, 도구 호출 (tool calling)Troubleshooting— 연결 문제, 성능, 충돌, 자동 시작, 저장 공간
개인정보 처리방침 (Privacy Policy)— 데이터 수집 없음, 텔레메트리(telemetry) 없음, 분석(analytics) 없음보안 가이드 (Security Guide)— 베어러 토큰 인증 (bearer token auth), 네트워크 노출, HTTPS, 서버 보안
- 버그를 발견하셨나요? 여기서 보고해 주세요
- 기능을 요청하고 싶으신가요? 이슈(issue)를 생성해 주세요
빌드 (Building)— 빌드 지침, 서명 설정, HuggingFace OAuth 구성아키텍처 (Architecture)— 패키지 구조, 요청 흐름, 의존성 목록
제품 버전 (Product flavors) — 모두 병행 설치 가능합니다:
| 버전 | 아이콘 | 용도 |
|---|---|---|
stable | 안정화 버전 (Stable release) | |
beta | 베타 테스트 (Beta testing) | |
dev | 로컬 개발 (Local development) |
당신의 휴대폰에서 일어나는 일은 당신의 휴대폰에만 머뭅니다. 이것이 중요하시다면, OlliteRT를 후원하는 것을 고려해 보세요.
Google AI Edge Gallery— 이 프로젝트의 기반이 된 원본 프로젝트LiteRT-LM— Google의 온디바이스 (on-device) AI 런타임Ktor— 코루틴 (Coroutine) 기반 HTTP 서버 프레임워크
Apache License 2.0에 따라 라이선스가 부여됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기