Skip to main content

Document Indexing

use pryveo_sdk::vector::index_document;
use std::collections::HashMap;

let docs = vec![
    ("rust_guide", "Rust is a systems programming language..."),
    ("ai_intro", "Artificial intelligence enables..."),
    ("privacy", "Privacy-preserving AI techniques..."),
];

for (id, content) in docs {
    let mut metadata = HashMap::new();
    metadata.insert("category".to_string(), "documentation".to_string());
    index_document(id, content, metadata)?;
}
use pryveo_sdk::vector::search;

let results = search("How does AI work?", 3)?;

for (i, result) in results.iter().enumerate() {
    println!(
        "{}. {} (similarity: {:.2}%)",
        i + 1,
        result.document.id,
        result.similarity * 100.0
    );
}

RAG Integration

use pryveo_sdk::{vector::rag_query, inference::generate};
use pryveo_sdk::inference::GenerateRequest;

fn answer_question(question: &str) -> pryveo_sdk::Result<String> {
    let context = rag_query(question, 500)?;
    let prompt = format!(
        "Context: {}\n\nQuestion: {}\n\nAnswer:",
        context, question
    );

    let response = generate(GenerateRequest {
        prompt,
        max_tokens: Some(150),
        temperature: Some(0.7),
        top_p: Some(0.9),
    })?;

    Ok(response.text)
}