GitHub TrendingAI · 머신러닝

orailnoor/cross-platform-llm-client

Flutter로 만든 오프라인 LLM 클라이언트, 안드로이드에서 로컬 실행 지원

원제 orailnoor/cross-platform-llm-client

스타 1,532당일 +137C++
Key Point

안드로이드 폰에서 인터넷 없이 LLM을 직접 실행하고, 필요시 클라우드 API로 전환하는 프로덕션급 오픈소스 앱으로, 프라이버시를 중시하는 개발자에게 실제 대안이 된다.

핵심 요약

  • PrivateLM은 Flutter 기반의 크로스플랫폼 AI 채팅 클라이언트로, 안드로이드에서 GGUF 모델을 로컬로 다운로드해 GPU 가속(Vulkan)으로 인터넷 없이 실행할 수 있다.
  • 클라우드 API 모드에서는 OpenAI, Anthropic, Google Gemini, Kimi(Moonshot AI)로 자동 전환되며, 앱 내에서 두 방식을 원활하게 전환할 수 있다.
  • 텍스트와 이미지를 함께 보낼 수 있는 멀티모달 채팅을 지원하며, Qwen2-VL 같은 로컬 모델과 클라우드 제공자 모두 비전 기능을 활용할 수 있다.
  • 모든 채팅과 설정은 Hive를 통해 로컬에 저장되며, 클라우드 모드를 명시적으로 선택하지 않는 한 기기 밖으로 나가지 않는다.
  • 런타임에 Vulkan을 통해 GPU 능력을 감지해 오프로드 레이어를 결정하고, 디바이스 등급(울트라/고/중/저)에 따라 스레드 수를 자동 선택하며, 유휴 감지(5초)와 하드 타임아웃(180초)으로 응답성을 유지한다.
  • 첫 실행 시 기기의 RAM을 감지해 최적 컨텍스트 크기와 토큰 한계를 자동 추천한다.
  • llama.cpp를 래핑한 커스텀 Flutter 플러그인 llama_flutter_android를 사용하며, ChatML·Llama-3·Gemma·Phi 같은 네이티브 채팅 템플릿을 지원한다.
  • API 키는 Hive에 저장되며 제공자의 엔드포인트로만 전송되고, 네 가지 서로 다른 API 형태(OpenAI·Anthropic·Google Gemini·Kimi)를 단일 인터페이스로 통합한다.
  • 안드로이드는 NEON을 통한 CPU 오프로드와 GPU 가속을 지원하고 최소 SDK 28 필요하며, iOS는 Metal GPU 가속을 지원하고, 웹은 현재 클라우드만 지원한다(로컬 지원 예정).
  • iOS/iPad는 AltStore를 통해 사이드로드 가능하며 AltServer와 같은 Wi-Fi 네트워크 연결 필요하고, 사이드로드된 앱은 7일 후 만료되지만 AltStore가 자동 갱신을 시도한다.
  • Firebase Cloud Messaging으로 푸시 업데이트와 백그라운드 작업을 처리하며, 멀티스텝 AI 워크플로우를 위한 작업 뷰가 개발 중이다.
  • 상태 관리는 GetX, 백그라운드 실행은 flutter_background_service + flutter_local_notifications를 사용하며, MIT 라이선스로 배포된다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗