Skip to main content

Crate cognate_rag

Crate cognate_rag 

Source
Expand description

Cognate RAG — Retrieval-Augmented Generation pipeline.

§Overview

  1. Choose an EmbeddingProvider (e.g. OpenAiProvider from cognate-providers).
  2. Choose a VectorStore backend (e.g. MemoryVectorStore for prototyping).
  3. Wrap them in RagPipeline to get ingest and retrieve.

§Example

use cognate_rag::{RagPipeline, MemoryVectorStore};
use cognate_core::EmbeddingProvider;

async fn run(embedder: impl EmbeddingProvider) {
    let store = MemoryVectorStore::new();
    let pipeline = RagPipeline::new(embedder, store);

    pipeline
        .ingest(
            vec!["Rust is fast".to_string(), "Rust is safe".to_string()],
            vec![serde_json::json!({"source": "doc1"}), serde_json::json!({"source": "doc2"})],
        )
        .await
        .unwrap();

    let results = pipeline.retrieve("fast systems language", 1).await.unwrap();
    println!("{}", results[0].content);
}

Re-exports§

pub use memory::MemoryVectorStore;

Modules§

memory
In-memory vector store implementation.

Structs§

Document
A document stored in a vector store.
RagPipeline
A high-level RAG pipeline combining an embedding provider with a vector store.

Traits§

VectorStore
A persistent or in-memory store of embedded documents.

Type Aliases§

Vector
A dense embedding vector.