> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# RAG • Rust AI Agent SDK

> RAG (Retrieval Augmented Generation) Module

# rag

<Badge color="orange">Rust AI Agent SDK</Badge>

RAG (Retrieval Augmented Generation) Module

This module provides RAG capabilities for agents:

* `RAG` - Main RAG pipeline
* `RAGConfig` - Configuration for RAG
* `RAGResult` - Result with answer and citations
* `Citation` - Source citation
* `SmartRetriever` - Intelligent document retrieval

# Example

```ignore theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::rag::{RAG, RAGConfig};

let rag = RAG::new()
.config(RAGConfig::default())
.build()?;

let result = rag.query("What is the main finding?")?;
println!("{}", result.answer);
```

## Import

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::rag::*;
```

## Classes

<CardGroup cols={2}>
  <Card title="Citation" icon="brackets-curly" href="../classes/Citation">
    A citation referencing a source document.
  </Card>

  <Card title="ContextPack" icon="brackets-curly" href="../classes/ContextPack">
    A pack of context chunks for RAG.
  </Card>

  <Card title="ContextChunk" icon="brackets-curly" href="../classes/ContextChunk">
    A single context chunk.
  </Card>

  <Card title="RAGResult" icon="brackets-curly" href="../classes/RAGResult">
    Result of a RAG query.
  </Card>

  <Card title="RAGConfig" icon="brackets-curly" href="../classes/RAGConfig">
    Configuration for RAG pipeline.
  </Card>

  <Card title="RetrievalConfig" icon="brackets-curly" href="../classes/RetrievalConfig">
    Unified retrieval configuration (Agent-first).
  </Card>

  <Card title="TokenBudget" icon="brackets-curly" href="../classes/TokenBudget">
    Token budget for context management.
  </Card>

  <Card title="RetrievalResult" icon="brackets-curly" href="../classes/RetrievalResult">
    Result of a retrieval operation.
  </Card>

  <Card title="RAG" icon="brackets-curly" href="../classes/RAG">
    Main RAG pipeline.
  </Card>

  <Card title="RAGBuilder" icon="brackets-curly" href="../classes/RAGBuilder">
    Builder for RAG
  </Card>

  <Card title="RetrievalStrategy" icon="brackets-curly" href="../classes/RetrievalStrategy">
    Retrieval strategy for RAG.
  </Card>

  <Card title="CitationsMode" icon="brackets-curly" href="../classes/CitationsMode">
    Citations mode for RAG.
  </Card>
</CardGroup>

## Functions

<CardGroup cols={2}>
  <Card title="get_model_context_window()" icon="function" href="../functions/get_model_context_window">
    Get model context window size.
  </Card>

  <Card title="estimate_tokens()" icon="function" href="../functions/estimate_tokens">
    Estimate token count for text.
  </Card>

  <Card title="build_context()" icon="function" href="../functions/build_context">
    Build context string from chunks.
  </Card>

  <Card title="truncate_context()" icon="function" href="../functions/truncate_context">
    Truncate context to fit token limit.
  </Card>

  <Card title="deduplicate_chunks()" icon="function" href="../functions/deduplicate_chunks">
    Deduplicate chunks by content similarity.
  </Card>
</CardGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust RAG" icon="magnifying-glass" href="/docs/rust/rag" />

  <Card title="Rust Retrieval" icon="search" href="/docs/rust/retrieval" />

  <Card title="Rust Vector Store" icon="database" href="/docs/rust/vector-store" />

  <Card title="Rust Chunking" icon="scissors" href="/docs/rust/chunking" />
</CardGroup>
