@vivantel/virage-core
    Preparing search index...

    Interface RAGPipelineConfig

    interface RAGPipelineConfig {
        embedder: EmbeddingProvider;
        fileSetEntries: ChunkerEntry[];
        globalIgnore?: string[];
        options?: {
            batchSize?: number;
            chunkConcurrency?: number;
            concurrency?: number;
            dryRun?: boolean;
            embeddingsFile?: string;
            force?: boolean;
            logger?: Logger;
            maxBatchChars?: number;
            maxPendingFiles?: number;
            minEmbeddingBatchSize?: number;
            minIngestionBatchSize?: number;
            minUploadingBatchSize?: number;
            noBanner?: boolean;
            notifications?: { webhookUrl?: string };
            onChunkingComplete?: (
                files: number,
                bytes: number,
                durationMs: number,
            ) => void;
            onChunkProgress?: (done: number, total: number) => void;
            onEmbeddingComplete?: (
                chunks: number,
                bytes: number,
                durationMs: number,
            ) => void;
            onEmbedProgress?: (done: number, total: number) => void;
            onFileComplete?: (done: number, total: number) => void;
            onModelProgress?: (loaded: number, total: number) => void;
            onPreWarmDone?: () => void;
            onPreWarmStart?: () => void;
            onScanProgress?: (done: number, total: number) => void;
            onSkipProgress?: (skipped: number) => void;
            onUploadProgress?: (done: number, total: number) => void;
            rateLimitMs?: number;
            retry?: RetryOptions;
            skipUpload?: boolean;
            telemetry?: boolean;
        };
        quality?: QualityConfig;
        search?: {
            hybrid?: boolean;
            hybridAlpha?: number;
            minSimilarity?: number;
            queryEmbedder?: EmbeddingProvider;
            reranker?: Reranker;
            rerankOversample?: number;
        };
        sourceRepository?: SourceRepository;
        telemetry?: TelemetryConfig;
        vectorStore: VectorStore;
    }
    Index
    fileSetEntries: ChunkerEntry[]

    Flat list: one entry per (fileSet × chunker) pair (ADR-043).

    globalIgnore?: string[]

    Global ignore patterns applied before routing files to any fileSet.

    options?: {
        batchSize?: number;
        chunkConcurrency?: number;
        concurrency?: number;
        dryRun?: boolean;
        embeddingsFile?: string;
        force?: boolean;
        logger?: Logger;
        maxBatchChars?: number;
        maxPendingFiles?: number;
        minEmbeddingBatchSize?: number;
        minIngestionBatchSize?: number;
        minUploadingBatchSize?: number;
        noBanner?: boolean;
        notifications?: { webhookUrl?: string };
        onChunkingComplete?: (
            files: number,
            bytes: number,
            durationMs: number,
        ) => void;
        onChunkProgress?: (done: number, total: number) => void;
        onEmbeddingComplete?: (
            chunks: number,
            bytes: number,
            durationMs: number,
        ) => void;
        onEmbedProgress?: (done: number, total: number) => void;
        onFileComplete?: (done: number, total: number) => void;
        onModelProgress?: (loaded: number, total: number) => void;
        onPreWarmDone?: () => void;
        onPreWarmStart?: () => void;
        onScanProgress?: (done: number, total: number) => void;
        onSkipProgress?: (skipped: number) => void;
        onUploadProgress?: (done: number, total: number) => void;
        rateLimitMs?: number;
        retry?: RetryOptions;
        skipUpload?: boolean;
        telemetry?: boolean;
    }

    Type Declaration

    • OptionalbatchSize?: number
    • OptionalchunkConcurrency?: number
    • Optionalconcurrency?: number
    • OptionaldryRun?: boolean
    • OptionalembeddingsFile?: string
    • Optionalforce?: boolean
    • Optionallogger?: Logger
    • OptionalmaxBatchChars?: number
    • OptionalmaxPendingFiles?: number

      Max files whose chunks may be queued for embedding before chunk workers pause. Default: minEmbeddingBatchSize × 3.

    • OptionalminEmbeddingBatchSize?: number

      Minimum pending-chunk queue size before triggering an embedding run. Default: 10.

    • OptionalminIngestionBatchSize?: number

      Use minUploadingBatchSize instead.

    • OptionalminUploadingBatchSize?: number

      Minimum embedded-chunk queue size before triggering an upload batch. Default: 20.

    • OptionalnoBanner?: boolean
    • Optionalnotifications?: { webhookUrl?: string }
    • OptionalonChunkingComplete?: (files: number, bytes: number, durationMs: number) => void
    • OptionalonChunkProgress?: (done: number, total: number) => void
    • OptionalonEmbeddingComplete?: (chunks: number, bytes: number, durationMs: number) => void
    • OptionalonEmbedProgress?: (done: number, total: number) => void
    • OptionalonFileComplete?: (done: number, total: number) => void
    • OptionalonModelProgress?: (loaded: number, total: number) => void
    • OptionalonPreWarmDone?: () => void
    • OptionalonPreWarmStart?: () => void
    • OptionalonScanProgress?: (done: number, total: number) => void
    • OptionalonSkipProgress?: (skipped: number) => void
    • OptionalonUploadProgress?: (done: number, total: number) => void
    • OptionalrateLimitMs?: number
    • Optionalretry?: RetryOptions
    • OptionalskipUpload?: boolean
    • Optionaltelemetry?: boolean
    quality?: QualityConfig
    search?: {
        hybrid?: boolean;
        hybridAlpha?: number;
        minSimilarity?: number;
        queryEmbedder?: EmbeddingProvider;
        reranker?: Reranker;
        rerankOversample?: number;
    }

    Type Declaration

    • Optionalhybrid?: boolean
    • OptionalhybridAlpha?: number
    • OptionalminSimilarity?: number

      Minimum similarity score [0–1] for search results. Applied after reranking.

    • OptionalqueryEmbedder?: EmbeddingProvider

      Separate embedder for query-time use (e.g. local model for free queries). Falls back to embedder.

    • Optionalreranker?: Reranker
    • OptionalrerankOversample?: number

      Number of candidates to fetch per final result when a reranker is active. Default: 5.

    sourceRepository?: SourceRepository
    telemetry?: TelemetryConfig
    vectorStore: VectorStore