Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nahtlose KI in Blazor MAUI - komplett lokal

Nahtlose KI in Blazor MAUI - komplett lokal

Lokale KI nahtlos in eine Blazor App integrieren? Das ist heute schon mit einfachen Mitteln möglich. Gemeinsam erkunden ein paar Ansätze, die trotz aktueller Herausforderungen wie der Geschwindigkeit bereits spannende Einblicke in die mögliche zukünftige Entwicklung dieser Technologie zeigen.

Avatar for Jochen Kluger

Jochen Kluger

June 30, 2025

More Decks by Jochen Kluger

Other Decks in Technology

Transcript

  1. Use Case - Psychotherapie • 50 Minuten Therapiegespräch • 10

    Minuten Pause • Bezahlt werden nur Therapiegespräche • Zeitnahe Dokumentationspflicht → am selben Tag
  2. Hilfe durch KI? • Daten in die Cloud? • Skepsis

    in Bezug auf Nutzung / Verlust der Daten • Medizinische Daten - DSGVO Art. 9 (höchste Schutzklasse)
  3. Mögliche Lösung – komplett lokal Keine extra Kosten pro Token

    oder für Abo Daten verlassen das System nicht Performance? Machbar? Hardware- Bedarf?
  4. Stack Overflow… RAG Semantic Search Speech to Text Text to

    Speech GGUF Semantic Kernel Vector DB llama.cpp Model Hosting Modell Größe 2B / 7B / 12B Huggingface Quantisierung Embeddings MCP
  5. Deep Application Integration • Gigantische Möglichkeiten • Sprechen statt tippen

    (STT/TTS) • Sprechen mit der App über die existierenden Daten (Semantic Search) • Aufruf von Funktionen der App aus der Unterhaltung heraus (Function Calling) • Barrierefreiheit • Hands-free, Eyes-free Bedienung • EU Accessibility Act (2025)
  6. Spracherkennung / STT • Browser STT with WebView2 → Azure

    STT online „To convert your speech into text, Microsoft Edge supports the Web Speech API. If a website includes a web feature that requires capture and translation of your speech to text and requests access to your microphone, Microsoft Edge sends the captured audio to a Microsoft service where it is translated into text. “ • Whisper GGUF tiny-de / small-de offline (MIT) → Voll integrierbar • Vosk / Coqui offline
  7. Sprachausgabe / TTS • Browser TTS with WebView2 – nutzt

    System TTS offline • System TTS offline • Piper TTS offline (MIT; Stimmen unterschiedlich, CC-BY-SA) • Coqui TTS offline (Apache 2.0; Stimmen unterschiedlich) • eSpeak NG offline (GPL v3; Stimmen Public Domain) — sehr leichtgewichtig, aber eher „robotisch“ • Stimm-Lizenzierung beachten • Z.B. Thorsten Voice (https://www.thorsten-voice.de/)
  8. KI-Kern / LLM Text Generation • llama.cpp - LLM Inferenz

    in C/C++, ursprünglich Meta LLaMA (https://github.com/ggerganov/llama.cpp) • LlamaSharp (https://github.com/SciSharp/LLamaSharp) • CPU und GPU • Modelle von Huggingface (https://huggingface.co/models) • Kriterien: Größe, Anwendungsgebiet, Kontext, Sprache, Lizenz, Anzahl Parameter, Quantisierung
  9. GGUF & Quantisierung • Dateiformat • GGUF = Gewichte +

    Tokenizer + Metadaten → eine Datei • Q4_K_M (≈ 6 GB RAM / 7 B) • Q5_K_M (≈ 9 GB / 7 B)
  10. Umsetzung • Microsoft.Extensions.AI • LlamaSharp Implementierung vorhanden • Einfache Anbindung,

    einfacher Wechsel zu Server-LLM • Aber: Keine Function Calling Unterstützung mit LlamaSharp • Semantic Kernel • Sehr mächtig aber höhere Komplexität • Plugins in C# oder als Text-Prompt • Function Calling integriert
  11. Performance-Einordnung • NUC i7 7 B Q4 → 15 tok/s

    • MacBook M1 Pro 8 B Q5 → 25 tok/s • PC mit Nvidia RTX 4070 13 B Q5 → 45 tok/s
  12. Embeddings / Vektor-Suche • sqlite als lokale Datenbank • vec0

    Erweiterung zum Speichern von / Suchen in Vektoren (https://github.com/asg017/sqlite-vec) • Nachfolger von sqlite-vss / Pre v1 / Seit 5 Monaten nicht weiterentwickelt • Microsoft.Data.Sqlite • Embedding-Modell • LLM Embedding Funktion • all-MiniLM-L6-v2 (384-Dim, 80 MB)
  13. LLM Sicherheit und Prüfschleife • Input-Sanitizing / Injection Vermeidung •

    Risiko-Analyse (hier Entscheidung nicht relevant) • Vermeidung von Halluzination • Vermeidung Data Breaches • User in the loop • Nachrichten, Dokumentationen, etc. immer durch menschlichen Benutzer prüfen lassen
  14. Testing im LLM Umfeld • STT / TTS allgemein schwer

    zu testen • Aufgenommene Sprach-Samples • Prüfung Log-Output auf erkannte Eingabe • Test mit UI-Testing Frameworks • Gen-AI nicht deterministisch • temp 0, fixed seed • Human-in-the-loop • S/LLM-as-a-judge (Bewertung durch Sprachmodell, z.B. GLIDER) • Automatisierte A-B Tests • Golden Snapshot Tests
  15. Grenzen und Realität • Performance stark limitiert • Beschränkung auf

    kleine Modelle • Sprache meist auf englisch optimiert • Andere Sprachen funktionieren, aber Qualität geringer • STT mit Angabe der Sprache – nicht so flexibel • Modelle mit Weltwissen → nötig? • Spezialisiertere Modelle wären besser • SLM – Small Language Models
  16. Ausblick • Spezialisiertere / kleinere Modelle • WebLLM • Bessere

    Hardware-Unterstützung • Production-ready Frameworks • Real-Time API
  17. Anhang TTS Lizenzierung Plattform / Quelle der Stimme Wer „besitzt“

    die Stimme? Was ist (typisch) erlaubt? Was ist nicht erlaubt / erfordert separate Lizenz? Windows-Voices (SAPI) Bestandteil des Windows-EULA (Speech SDK 5.1) documentation.help - Nutzung in Apps auf Windows-Geräten - Ausliefern der SAPI- DLLs mit eigener App (Redistributable Code) - Keine Weiterverteilung der Voice-Dateien selbst - Aufzeichnen & Verkaufen von TTS-Audio nur, wenn nicht redistribuiert/öffentlich downloadbar macOS-Voices (NSSpeech) Teil des macOS- Software License Agreement (SLA) sound.stackexchange.c om - Lokale/ persönliche Nutzung in Apps auf macOS/iOS - Kommerzielle/öffentlich e Verbreitung der generierten Audio-Files ohne separate Genehmigung Android System-TTS (com.google.android.tt s) Lizenz über Google Play Services bzw. OEM - Lokale Wiedergabe auf dem Gerät - Redistributable Audio oder Voice-Files → Google ToS untersagen Training/Vervielfältigung support.google.com Browser TTS (Web Speech API) Greift auf System- Voices zu (siehe oben) - Alles, was unter der jeweiligen OS-EULA erlaubt ist - Gleiches Verbot der Weitergabe/Kommerz- verwertung der Audio- Assets Azure Neural Voices (Edge Online-TTS) Azure Cognitive Services ToS - Streaming der Sprache an End-User (<5 MB Cache) - Persistente Speicherung >24 h oder Weiterverkauf ohne Zusatzvertrag Open-Source- Alternative: Piper Code MIT, Voices meist CC-BY-SA stackoverflow.com - Frei nutzbar, auch kommerziell, wenn Attribution & Share-Alike eingehalten werden - Entnahme einzelner Samples ohne CC-BY- SA-Kompatibilität
  18. Weitere Links • SpeechRecognitionEnabled – https://learn.microsoft.com/en-us/deployedge/microsoft-edge-browser- policies/speechrecognitionenabled • ConfigureOnlineTextToSpeech –

    https://learn.microsoft.com/en-us/deployedge/microsoft-edge- browser-policies/configureonlinetexttospeech • sqlite-vec – https://github.com/asg017/sqlite-vec • GGUF Spec – https://github.com/ggerganov/llama.cpp/blob/master/docs/gguf.md • Quant Guide – https://huggingface.co/TheBloke/Llama-3-8B-GGUF#quantisation-formats • Llama 3 License – https://ai.meta.com/resources/models-and-libraries/llama-downloads/ • Whisper MIT – https://github.com/openai/whisper/blob/main/LICENSE • Piper License – https://github.com/rhasspy/piper#license • MiniLM Model Card – https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 • llama.cpp Benchmarks – https://github.com/ggerganov/llama.cpp/issues/4606 • CPU vs GPU mit SLM - https://arxiv.org/html/2505.06461v1