Document Indexing
Copy
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)?;
}
Semantic Search
Copy
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
Copy
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)
}