Practical overview
When it fits
Consider it when building a Flutter app that needs on-device AI and one or more of the described model, retrieval, function-calling, multimodal or speech capabilities.
Who it is for
- Flutter developers adding on-device AI capabilities to applications.
- Teams considering local language-model, embedding, RAG, function-calling, multimodal or speech features across listed Flutter targets.
Documented uses
- Add on-device language-model features to a Flutter application.
- Use local embeddings and RAG in Flutter app experiences.
- Integrate function-calling workflows into a Flutter application.
- Add on-device multimodal or speech features to a Flutter application.
Requirements & limits
- The project description lists Android, iOS, web, macOS, Windows and Linux as targets.
- The stated capability areas include language models such as Gemma and other LLMs, multimodal AI, function calling, embeddings, RAG and speech.
- The repository lists an MIT license and JavaScript as its primary language.
- The available project description does not specify setup steps or per-platform feature requirements.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Move a Flutter app from flutter_gemma to flutter_edge_ai
Rename dependencies and Dart imports when migrating an app to the Flutter Edge AI package names.
Before you start
- An existing Flutter app using flutter_gemma* packages.
- Flutter 3.44 or newer to use the documented dart fix step.
Steps
Replace each flutter_gemma* dependency in pubspec.yaml with its corresponding flutter_edge_ai* package name and version listed in the migration documentation.
Update imports: replace flutter_gemma_rag_ with flutter_edge_ai_ first, then replace flutter_gemma with flutter_edge_ai in package and file names.
Run dart fix --apply to rename the documented Dart identifiers.
Expected outcome
The app's package dependencies, imports, and supported Dart identifiers use the Flutter Edge AI names.
Guide limitations
- The guidance covers package and identifier migration, not building or running the migrated app.
- The migration documentation specifies Flutter 3.44 or newer for dart fix --apply.
Create and use an independent SQLite RAG index
Register inference and embedding components, then open an independently owned SQLite index and add and search text.
Before you start
- Dependencies on flutter_edge_ai, flutter_edge_ai_rag, and flutter_edge_ai_sqlite, as shown in the migration documentation.
- A database path and a stable embedding profile ID for the active embedder.
Steps
Initialize FlutterEdgeAi with LiteRtLmEngine, LiteRtEmbeddingBackend, and GemmaEmbeddingTokenizers registered.
Create FlutterEdgeAiRag with SqliteVectorStoreProvider, then open an index using a VectorStoreSpec with the provider ID, database location, and any required filter schema; pass the matching activeEmbedderProfileId.
Add text to the index with addText, search with searchText, and call flush to persist changes.
Dispose the index when finished, before disposing FlutterEdgeAi or a custom embedder.
Expected outcome
An independently managed SQLite RAG index is opened, accepts text, can be searched, and can be flushed.
Guide limitations
- Persistent locations are bound to an embedding profile; profile identity must reflect the weights, tokenizer, pooling, normalization, and document/query prefix contract.
- SQLite filter schema changes require a new schema-versioned location and re-indexing.
- On Web, keep one app-owned index per location because SQLite holds an exclusive Web Lock.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 9 October 2026
- Original website title
- DenisovAV/flutter_edge_ai · Official homepage title · retained in its source language

