initialize static method
Initialize the RAG engine. Call once in main().
This will:
- Initialize the Rust library (FFI)
- Load the tokenizer from assets
- Load the ONNX embedding model
- Initialize the SQLite database
tokenizerAsset - Path to tokenizer.json in assets
modelAsset - Path to ONNX model file in assets
databaseName - Optional custom database name (default: 'rag.sqlite')
onProgress - Optional callback for initialization progress
Example:
await MobileRag.initialize(
tokenizerAsset: 'assets/tokenizer.json',
modelAsset: 'assets/model.onnx',
onProgress: (status) => print(status),
);
Implementation
static Future<void> initialize({
required String tokenizerAsset,
required String modelAsset,
String? databaseName,
int maxChunkChars = 500,
int overlapChars = 50,
void Function(String status)? onProgress,
}) async {
if (_instance != null) {
onProgress?.call('Already initialized');
return;
}
_engine = await RagEngine.initialize(
config: RagConfig.fromAssets(
tokenizerAsset: tokenizerAsset,
modelAsset: modelAsset,
databaseName: databaseName,
maxChunkChars: maxChunkChars,
overlapChars: overlapChars,
),
onProgress: onProgress,
);
_instance = MobileRag._();
}