API ReferenceFlutter
RagPipeline
API reference for retrieval-augmented generation in Flutter.
This page reflects zetic_mlange 1.9.1.
Flutter RAG uses the same composition style as Android and iOS: a RagPipeline combines a retriever, an existing ZeticMLangeLLMModel, and a RagProfile.
Import
import 'package:zetic_mlange/zetic_mlange.dart';RagPipeline
RagPipeline({
required RagRetriever retriever,
required ZeticMLangeLLMModel llm,
required RagProfile profile,
RagPipelineConfig config = const RagPipelineConfig(),
})
Stream<String> respond({required String query, String? system})respond(...) retrieves context, starts generation, and streams generated tokens.
final rag = RagPipeline(
retriever: retriever,
llm: model,
profile: const RagProfile.qwen25(),
);
await for (final token in rag.respond(query: 'What does ZeticMLange do?')) {
append(token);
}RagRetriever
abstract interface class RagRetriever {
FutureOr<List<RetrievedChunk>> retrieve(String query, {required int topK});
}Implement this interface for app-owned retrieval, remote vector stores, local databases, or other retrieval systems.
RetrievedChunk
const RetrievedChunk({
required String text,
double? score,
String? source,
Map<String, String>? metadata,
})text is included in the augmented prompt. score, source, and metadata are optional retrieval metadata.
RagPipelineConfig
const RagPipelineConfig({
int topK = 5,
int maxContextTokens = 2048,
String systemPrefix =
'You are a helpful assistant. Use the context below to answer.',
})LocalRagPipeline
static Future<LocalRagPipeline> create({
required RagProfile profile,
required String embedderGgufPath,
LocalRagConfig config = const LocalRagConfig(),
})
Future<void> indexDocs(List<RagDocument> docs)
Future<List<RetrievedChunk>> retrieve(String query, {required int topK})
void close()LocalRagPipeline implements RagRetriever, so it can be passed directly to RagPipeline.
final localRag = await LocalRagPipeline.create(
profile: const RagProfile.qwen25(backboneGgufPath: backbonePath),
embedderGgufPath: embedderPath,
);
await localRag.indexDocs([
const RagDocument(text: 'Local context.', source: 'docs'),
]);
final rag = RagPipeline(
retriever: localRag,
llm: model,
profile: const RagProfile.qwen25(backboneGgufPath: backbonePath),
);RagDocument
const RagDocument({required String text, required String source})Use RagDocument when indexing documents into LocalRagPipeline.
LocalRagConfig
const LocalRagConfig({
int topK = 5,
int chunkSizeChars = 1024,
int chunkOverlapChars = 128,
int embedderNCtx = 512,
RagEmbedderPooling embedderPooling = RagEmbedderPooling.mean,
})