Skip to main content
Knowledge lets agents answer questions using your documents, files, and data.

Quick Start

1

Create Knowledge Base

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

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

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


Knowledge Methods

MethodSignatureDescription
add(content, metadata)fn add(&mut self, &str, Option<HashMap>) -> Result<AddResult>Add text content
add_document(doc)fn add_document(&mut self, Document) -> Result<AddResult>Add a document
search(query, limit)fn search(&self, &str, usize) -> Result<SearchResult>Search knowledge
get(id)fn get(&self, &str) -> Option<&Document>Get document by ID
delete(id)fn delete(&mut self, &str) -> boolDelete document
clear()fn clear(&mut self)Clear all documents
len()fn len(&self) -> usizeDocument count
chunk(text)fn chunk(&self, &str) -> Vec<String>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<Knowledge>Build instance

Best Practices

PDF, TXT, and MD files work best. Keep documents focused and organized.
Smaller chunks (500-1000) for specific answers, larger for context.
Rebuild knowledge base when documents change.