Move DeepSeek R1 to LiteRT-LM and remove MediaPipe
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start with the model URL and file type in lib/data/repositories/ai_model_repository_impl.dart, then check the DeepSeek token limit in lib/data/datasources/llm/local_model_params.dart. Update the listed FlutterGemma.initialize(...) call sites and integration tests, and remove the dependency from pubspec.yaml. Test download and responses on a real phone, including <think> rendering and memory use on a low-RAM device; confirm the old .task file is no longer needed.
Written by the indexing model from the issue text.
Description
What
Move DeepSeek R1 to the LiteRT-LM engine and remove the MediaPipe engine from the app.
Why
- Right now MediaPipe is only in the app for one model: DeepSeek R1. Our catalog downloads it as a
.taskfile (deepseek_q8_ekv1280.task), which only MediaPipe can run. Qwen3 and Gemma 4 already use LiteRT-LM. - Google's own model card says the MediaPipe route is "in maintenance mode", so it won't get new fixes or speedups.
- A LiteRT-LM build of DeepSeek R1 now exists in the same Hugging Face repo:
DeepSeek-R1-Distill-Qwen-1.5B_multi-prefill-seq_q8_ekv4096.litertlm - One engine instead of two means less to maintain, a smaller app, and DeepSeek gets the same GPU handling and fixes as the other models.
Not a drop-in swap
- The new file has a bigger context (4096 vs our 1280), so it uses more memory. Needs checking on a low-RAM phone.
- People who already downloaded the old
.taskfile would need to download the new one. The old file becomes unused (the storage cleanup can remove it).
What to change
lib/data/repositories/ai_model_repository_impl.dart— point DeepSeek R1 at the.litertlmURL, file typelitertlmlib/data/datasources/llm/local_model_params.dart— DeepSeekmaxTokens1280 → 4096- Remove
MediaPipeEngine()fromFlutterGemma.initialize(...)inlib/main.dart,lib/features/shiv/gana/engine/gana_workmanager.dart, and the integration tests - Remove
flutter_gemma_mediapipefrompubspec.yaml
How to test (on a real phone)
- DeepSeek R1 downloads, loads, and answers
<think>reasoning blocks still show correctly- Memory use and speed compared with the old file
- Works on a low-RAM phone without being killed
Depends on #216 (flutter_gemma 1.8.3).
- Dominant language
- Dart
- Stars
- 2
- Forks
- 2
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 35
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from basictech01/uniun
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
basictech01/uniun#300 ·
Maintainers usually reply within 1 day
-
enhancement good first issue P2-Medium
Difficulty 5/5 Over a week Newbie friendliness 25/100
basictech01/uniun#296 ·
Maintainers usually reply within 1 day
-
bug good first issue P2-Medium
Difficulty 4/5 1-2 days Newbie friendliness 22/100
basictech01/uniun#293 ·
Maintainers usually reply within 1 day
-
bug P1-High
Difficulty 4/5 3-5 days Newbie friendliness 18/100
basictech01/uniun#286 · 2 comments ·
Maintainers usually reply within 1 day
-
P3-Low
Difficulty 4/5 1-2 days Newbie friendliness 30/100
basictech01/uniun#282 · 1 comment ·
Maintainers usually reply within 1 day
All issues in basictech01/uniun
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
AppFlowy-IO/AppFlowy#9075 ·
-
Paste asks for iOS paste permission because the default context menu ignores SystemContextMenuPossibly taken @dorklein claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
maheshj01/searchfield#267 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
avdept/JellyBoxPlayer#375 ·
Maintainers usually reply within 1 day
-
Listener that removes itself in its callback causes other listeners to miss updatesPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
RevenueCat/purchases-flutter#1962 ·
Maintainers usually reply within 1 day