Add on-device local LLM inference for summarization and topic extraction #127
Labels
No labels
blocked:children
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
deferred
enhancement
feature-request
in-progress
needs-decompose
needs-triage
quickfix
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/transcriber#127
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Summarization (
LLMSummarizer) and topic extraction (LLMTopicExtractor) currently require a network LLM endpoint. There is no on-device local option.Spec principle
Local/offline should be the default workflow, with cloud as an opt-in enhanced experience.
Feasibility
TL;DR: Feasible but non-trivial. ~2-4 weeks of integration work.
Best path:
llama-kotlin-android(llama.cpp JNI wrapper) — same pattern as existing sherpa-onnx integration for LOCAL_WHISPER.Realistic constraints:
LLMSummarizer/LLMTopicExtractorcode can be adapted (not rewritten) — they already use a cleanLLMConfigabstractionImplementation notes
LocalLLMProviderclass analogous toLocalDiarizationProviderLLMConfig(endpoint, model) — just change the HTTP call to a local JNI callLabels
feature-request, local-first
Optimization commit
d78d669deployedThis commit contains performance and reliability fixes across the stack. Build compiles and all unit tests pass.
Key changes:
Follow-up fix deployed:
9c75ca7Fixes integration issues from the optimization commit:
NoteTag,NoteCrossref,SpeakerEmbeddingentities toAppDatabase(version 7)MIGRATION_6_7for new tables:note_tags,note_crossrefs,speaker_embeddings@Providesmethods inDatabaseModulefor new DAOssetPinned/setTitlemethods toSessionRepository(used by UI)TranscriptionServiceparameter mismatch inSpeechBackend.selectcallFloatArrayConvertertoAppDatabase@TypeConvertersfor embedding BLOB storageFull debug build passes. All unit tests pass.
Offline infrastructure deployed:
79954aaFoundation for full sustained offline functionality:
ConnectivityMonitor— real-time network state trackingOfflineCapabilityTracker— per-feature offline availabilityEnhancementJobqueue — cloud features queue for background processing when onlineLLMModelCatalog— 3 quantized on-device LLMs (Qwen 0.5B, TinyLlama 1.1B, Phi-3 Mini)ModelsScreenextended with LLM model download/activate/deleteBackendConfigScreen— Offline Mode toggleBuild passes, all unit tests pass.