Expand description
Cognate RAG — Retrieval-Augmented Generation pipeline.
§Overview
- Choose an
EmbeddingProvider(e.g.OpenAiProviderfromcognate-providers). - Choose a
VectorStorebackend (e.g.MemoryVectorStorefor prototyping). - Wrap them in
RagPipelineto getingestandretrieve.
§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§
- Vector
Store - A persistent or in-memory store of embedded documents.
Type Aliases§
- Vector
- A dense embedding vector.