LocalLLM Hub Ubuntu 24.04

High-Performance LLM Distribution for Android Chatbots

Server Online

Gespeicherte Modelle

0
Bereit zur Verteilung

Gesamter Speicherplatz

0.00 MB
Auf Ubuntu Server Disk

Gesamt Downloads

0
An Android Clients übertragen

Hardware Verteilung

0 GPU / 0 CPU
Zielarchitektur
Modell & Dateiname Familie / Parameter Quantisierung Hardware Format Größe Downloads Aktionen
Lade Modelle...
Dateien hierher ziehen oder klicken zum Auswählen
Unterstützte Formate: .litertlm, .bin, .tflite, .gguf (bis zu 25 GB pro Datei)

1. API Endpunkte Übersicht

Die Android App kann die Liste der LLMs abrufen, nach Parametern/Hardware filtern und die Binärdateien mit Resumable HTTP-Range-Streaming direkt herunterladen.

Methode Endpunkt Beschreibung
GET /api/v1/models Gibt alle aktiven LLMs als JSON zurück (Name, Quantisierung, CPU/GPU, SHA256, Größe, Download-URL).
GET /api/v1/models/{id} Liefert Detailinformationen zu einem bestimmten Modell.
GET /api/v1/models/{id}/download Lädt die Binärdatei herunter (mit Accept-Ranges: bytes für DownloadManager).
GET /api/v1/health Statusabfrage des Servers.

2. Kotlin: Modell-Katalog abrufen (Retrofit / OkHttp)

// 1. Datenmodell für Android Kotlin data class LLMModel( val id: Int, val filename: String, val display_name: String, val family: String, val parameters: String, val quantization: String, val target_hardware: String, // "GPU" oder "CPU" val file_format: String, // "litertlm" oder "bin" val file_size_bytes: Long, val sha256_checksum: String, val download_url: String ) data class ModelListResponse( val success: Boolean, val count: Int, val models: List ) // 2. Abfrage über OkHttp val request = Request.Builder() .url("https://llm.apxtec.de/api/v1/models") .build() client.newCall(request).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { val json = response.body?.string() val result = Gson().fromJson(json, ModelListResponse::class.java) // Verfügbare LLMs in Android UI anzeigen } override fun onFailure(call: Call, e: IOException) { /* Error */ } })

3. Kotlin: Modell mit Android DownloadManager herunterladen

fun downloadLLMModel(context: Context, model: LLMModel) { val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager val uri = Uri.parse(model.download_url) val request = DownloadManager.Request(uri) .setTitle("Downloading ${model.display_name}") .setDescription("LLM Model Binary (${model.quantization})") .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) .setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, model.filename) .setAllowedOverMetered(true) .setAllowedOverRoaming(true) val downloadId = downloadManager.enqueue(request) // Nach Download: Modell-Pfad an LiteRT / MediaPipe GenAI übergeben }

Server Konfiguration

Betriebssystem Ubuntu Linux (24.04+ LTS)
Control Panel HestiaCP (Domain: llm.apxtec.de)
Backend Engine Python 3.12+ / FastAPI / Uvicorn
Datenbank SQLite 3 (WAL Concurrency Mode)
Max. Upload Dateigröße 25 GB (Streaming Chunked Transfer)
URL Downloader Hugging Face & Direct Async Stream
Download Protokoll HTTP 1.1 / Byte-Range Partial Content (206)
Integritätsprüfung SHA-256 Checksum Engine