Knowledge

Give agents access to your documents and data

Knowledge lets agents answer questions using your documents, files, and data.

Diagram

Knowledge Base

📄 Documents

📚 Knowledge

🤖 Agent

💬 Informed Response

Quick Start

  1. Create Knowledge Base
    rust
    use praisonai::{Knowledge, Document};
    
    // Create knowledge instance
    let mut knowledge = Knowledge::new().build()?;
    
    // Add content directly
    knowledge.add("Our refund policy allows returns within 30 days.", None)?;
    knowledge.add("Premium members get free shipping.", None)?;
  2. Add Documents
    rust
    use praisonai::{Knowledge, Document};
    
    let mut knowledge = Knowledge::new().build()?;
    
    // Create document with metadata
    let doc = Document::new("Company policies and procedures...")
        .source("policies.pdf")
        .filename("policies.pdf");
    
    knowledge.add_document(doc)?;
  3. Search Knowledge
    rust
    use praisonai::Knowledge;
    
    let knowledge = Knowledge::new().build()?;
    // ... add content ...
    
    // Search with limit
    let results = knowledge.search("refund policy", 5)?;
    
    for item in results.results {
        println!("{}: {}", item.score, item.text);
    }

How It Works

Diagram
KnowledgeAppUserKnowledgeAppUser“What is the refund policy?”search(“refund policy”, 5)SearchResult with items“Our refund policy allows…”

Knowledge Methods

MethodSignatureDescription
add(content, metadata)`fn add(&mut self, &str, Option

) -> Result

| Add text content | | add_document(doc) | fn add_document(&mut self, Document) -> Result

| Add a document | | search(query, limit) | fn search(&self, &str, usize) -> Result

| Search knowledge | | get(id) | fn get(&self, &str) -> Option<&Document> | Get document by ID | | delete(id) | fn delete(&mut self, &str) -> bool | Delete document | | clear() | fn clear(&mut self) | Clear all documents | | len() | fn len(&self) -> usize | Document count | | chunk(text) | fn chunk(&self, &str) -> Vec

` | Chunk text |


KnowledgeBuilder Methods

MethodSignatureDescription
config(cfg)fn config(KnowledgeConfig) -> SelfSet full config
chunking(cfg)fn chunking(ChunkingConfig) -> SelfSet chunking config
retrieval_strategy(s)fn retrieval_strategy(RetrievalStrategy) -> SelfSet retrieval
build()`fn build(self) -> Result

` | Build instance |


Best Practices

Use specific file types

PDF, TXT, and MD files work best. Keep documents focused and organized.

Chunk size matters

Smaller chunks (500-1000) for specific answers, larger for context.

Update knowledge regularly

Rebuild knowledge base when documents change.


Related