Skip to content

Latest commit

ย 

History

History
63 lines (44 loc) ยท 3.16 KB

File metadata and controls

63 lines (44 loc) ยท 3.16 KB

ModelGo ๐Ÿš€

ModelGo is an open-source Flutter application designed to bridge the gap between mobile devices and local AI execution. It provides a seamless interface for users to search, download, and manage quantized Large Language Models (LLMs) directly from the Hugging Face Hub, optimized specifically for mobile hardware.

โœจ Features

  • Hugging Face Hub Integration: Search for any open-source model available on Hugging Face directly within the app.
  • Mobile-Optimized Filtering: Automatically filters out massive models and displays only quantized .gguf files under 4GB, ensuring they can safely run on standard mobile hardware without memory crashes.
  • Direct-to-Disk Streaming: Utilizes a robust background downloading system that streams massive AI weight files directly to the device's secure physical storage, bypassing RAM limitations.
  • Download Management: Includes real-time download progress tracking and the ability to cancel massive downloads instantly, automatically cleaning up partial/corrupted files.
  • Local File Importing: Allows users to import existing .gguf or .bin model files directly from their phone's local storage.
  • Persistent Model Library: Uses a local SQLite database to track and manage the file paths of all downloaded and imported models for quick access.

๐Ÿ› ๏ธ Tech Stack & Architecture

  • Framework: Flutter (Dart)
  • Networking & Downloads: dio (for REST API communication and chunked file streaming)
  • Local Storage: sqflite (SQLite database for persistent model tracking)
  • File Management: path_provider & file_picker

๐Ÿ“‚ Project Structure

  • lib/main.dart: App entry point and theme configuration.
  • lib/home_screen.dart: Main dashboard navigation.
  • lib/upload_model_screen.dart: UI for picking local models and monitoring upload states.
  • lib/hugging_face_page.dart: Core logic for the Hugging Face REST API, search, filtering, and streaming downloads.
  • lib/model_dao.dart: Data Access Object for handling SQLite database operations.
  • lib/model_model.dart: Data models representing the stored AI weights.

๐Ÿš€ Getting Started

Prerequisites

  • Flutter SDK (v3.11.5 or higher)
  • Android Studio (for Android deployment) or Xcode (for iOS deployment)
  • A physical device with at least 6GB+ RAM (Recommended for running quantized LLMs)

Installation

  1. Clone the repository:
    git clone https://github.com/Lame-Coders/ModelGo.git
    cd modelgo
    
  2. Fetch Dependencies:
    flutter pub getflutter pub get
    
  3. Run the app on your connected device:
    flutter run
    

๐Ÿ—บ๏ธ Roadmap (Upcoming Features)

  • Local Inference Engine: Integrating a C++ bridge (like llama.cpp via FFI) to actually load the downloaded .gguf weights into memory and generate text offline.
  • Chat Interface: Building a conversational UI to interact with the downloaded models.
  • Model Deletion: Adding a UI to remove models from the SQLite database and delete the multi-gigabyte files from physical storage to free up space.

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page on GitHub.