AI Knowledge Bases API Guide
Useclient.ai().knowledge_bases() for backend knowledge-base management.
List knowledge bases
use wacht::{WachtClient, WachtConfig};
let client = WachtClient::new(WachtConfig::new("wk_live_...", "https://app.wacht.dev"))?;
let kb_list = client
.ai()
.knowledge_bases()
.fetch_knowledge_bases()
.limit(50)
.offset(0)
.search("product")
.send()
.await?;
for kb in kb_list.data {
println!("{} ({})", kb.name, kb.documents_count);
}
Get, create, update, delete
use wacht::models::{CreateAiKnowledgeBaseRequest, UpdateAiKnowledgeBaseRequest};
let kb = client
.ai()
.knowledge_bases()
.fetch_knowledge_base("kb_123")
.send()
.await?;
let created = client
.ai()
.knowledge_bases()
.create_knowledge_base(CreateAiKnowledgeBaseRequest {
name: "Product Docs".to_string(),
description: Some("Product documentation".to_string()),
configuration: None,
})
.send()
.await?;
let updated = client
.ai()
.knowledge_bases()
.update_knowledge_base(
"kb_123",
UpdateAiKnowledgeBaseRequest {
name: Some("Updated Product Docs".to_string()),
..Default::default()
},
)
.send()
.await?;
client
.ai()
.knowledge_bases()
.delete_knowledge_base("kb_123")
.send()
.await?;
Documents
use std::fs;
let documents = client
.ai()
.knowledge_bases()
.fetch_documents("kb_123")
.limit(25)
.send()
.await?;
let file_content = fs::read("user_guide.pdf")?;
let document = client
.ai()
.knowledge_bases()
.upload_document("kb_123", file_content, "user_guide.pdf")
.title("User Guide")
.send()
.await?;
client
.ai()
.knowledge_bases()
.delete_document("kb_123", &document.id)
.send()
.await?;
Agent knowledge-base attachments
client
.ai()
.knowledge_bases()
.attach_agent_knowledge_base("agent_123", "kb_123")
.send()
.await?;
let attached = client
.ai()
.knowledge_bases()
.fetch_agent_knowledge_bases("agent_123")
.send()
.await?;
