Rust
Upload document to knowledge base
upload_document
pub async fn upload_document( knowledge_base_id: &str, file_content: Vec<u8>, file_name: String ) -> Result<KnowledgeBaseDocument>
Result<KnowledgeBaseDocument>
use wacht::api::knowledge_bases::*; use std::fs; // Read file content let content = fs::read("product-guide.pdf")?; let file_name = "product-guide.pdf".to_string(); let document = upload_document("52057194421551105", content, file_name).await?; println!("Uploaded document: {} (ID: {})", document.name, document.id); println!("Size: {} bytes", document.size);
use wacht::api::knowledge_bases::*; use std::fs; use std::path::Path; async fn upload_file_to_kb(kb_id: &str, file_path: &str) -> Result<KnowledgeBaseDocument> { let path = Path::new(file_path); let file_name = path.file_name() .ok_or("Invalid file path")? .to_string_lossy() .to_string(); let content = fs::read(file_path)?; println!("Uploading {} ({} bytes)...", file_name, content.len()); let doc = upload_document(kb_id, content, file_name).await?; println!("Upload complete!"); println!("Document ID: {}", doc.id); println!("Processing status: {}", doc.status); Ok(doc) }
match upload_document(kb_id, content, file_name).await { Ok(doc) => { println!("Successfully uploaded document: {}", doc.name); println!("Document ID: {}", doc.id); println!("Status: {}", doc.status); } Err(Error::Api { status, message, .. }) => { match status.as_u16() { 404 => println!("Knowledge base not found"), 413 => println!("File too large: {}", message), 415 => println!("Unsupported file type: {}", message), 403 => println!("Access denied: {}", message), _ => println!("API error {}: {}", status, message), } } Err(e) => println!("Upload failed: {}", e), }