Expand description
§Knowledge Base Module
Provides comprehensive knowledge base management capabilities for the Zhipu AI API. Knowledge bases allow you to upload documents and use them as context for AI conversations.
§Module Components
§Knowledge Management
create- Create new knowledge baseslist- List existing knowledge basesretrieve- Retrieve knowledge base detailsupdate- Update knowledge base metadatadelete- Delete knowledge basescapacity- Check knowledge base capacity and usage
§Document Management
document_upload_file- Upload documents from local filesdocument_upload_url- Upload documents from URLsdocument_list- List documents in a knowledge basedocument_retrieve- Retrieve document detailsdocument_delete- Delete documentsdocument_image_list- List images in documentsdocument_reembedding- Re-embed documents
§Knowledge Retrieval
§Supported Operations
§Create Knowledge Base
ⓘ
use zai_rs::knowledge::{CreateKnowledgeRequest, CreateKnowledgeBody, KnowledgeIcon};
let body = CreateKnowledgeBody {
name: "My Knowledge Base".to_string(),
description: Some("Documentation for my project".to_string()),
icon: KnowledgeIcon::Text,
background_color: None,
permission: None,
embedding_id: None,
};
let request = CreateKnowledgeRequest::new(body);
let response = client.create_knowledge(&request).await?;§Upload Document
ⓘ
use zai_rs::knowledge::{DocumentUploadFileRequest, UploadFileOptions};
use tokio::fs::File;
let file = File::open("document.pdf").await?;
let options = UploadFileOptions {
chunk_size: None,
slice_type: None,
};
let request = DocumentUploadFileRequest::new(knowledge_id, file, options);
let response = client.upload_document(&request).await?;§List Documents
ⓘ
use zai_rs::knowledge::{DocumentListRequest, DocumentListQuery};
let query = DocumentListQuery {
limit: Some(20),
page: Some(1),
};
let request = DocumentListRequest::new(knowledge_id, query);
let response = client.list_documents(&request).await?;§Delete Document
ⓘ
use zai_rs::knowledge::{DocumentDeleteRequest, DocumentDeleteBody};
let body = DocumentDeleteBody {
document_ids: vec!["doc_123".to_string(), "doc_456".to_string()],
};
let request = DocumentDeleteRequest::new(knowledge_id, body);
let response = client.delete_documents(&request).await?;§Retrieve Knowledge
ⓘ
use zai_rs::knowledge::{KnowledgeRetrieveRequest, KnowledgeRetrieveBody};
let body = KnowledgeRetrieveBody {
question: "How do I use the API?".to_string(),
top_k: Some(3),
};
let request = KnowledgeRetrieveRequest::new(knowledge_id, body);
let response = client.retrieve_knowledge(&request).await?;§Use Cases
- Document Q&A: Upload documentation and ask questions about it
- Knowledge Search: Search across multiple documents efficiently
- Context Enhancement: Provide context to AI conversations
- Document Management: Organize and manage document collections
§Supported Document Types
- PDF documents
- Plain text files
- Markdown files
- Word documents
- HTML pages
§Knowledge Base Features
- Automatic text extraction and segmentation
- Vector embedding for semantic search
- Re-embedding capability for updated documents
- Image extraction from documents
- Usage tracking and capacity management
Re-exports§
pub use capacity::KnowledgeCapacityRequest;pub use create::BackgroundColor;pub use create::CreateKnowledgeBody;pub use create::CreateKnowledgeRequest;pub use create::CreateKnowledgeResponse;pub use create::EmbeddingId;pub use create::KnowledgeIcon;pub use delete::KnowledgeDeleteRequest;pub use delete::KnowledgeDeleteResponse;pub use document_delete::DocumentDeleteRequest;pub use document_delete::DocumentDeleteResponse;pub use document_image_list::DocumentImageListRequest;pub use document_list::DocumentListQuery;pub use document_list::DocumentListRequest;pub use document_reembedding::DocumentReembeddingBody;pub use document_reembedding::DocumentReembeddingRequest;pub use document_reembedding::DocumentReembeddingResponse;pub use document_retrieve::DocumentRetrieveRequest;pub use document_upload_file::DocumentSliceType;pub use document_upload_file::DocumentUploadFileRequest;pub use document_upload_file::UploadFileOptions;pub use document_upload_url::DocumentUploadUrlRequest;pub use document_upload_url::UploadUrlBody;pub use document_upload_url::UploadUrlDetail;pub use list::KnowledgeListQuery;pub use list::KnowledgeListRequest;pub use retrieve::KnowledgeRetrieveRequest;pub use retrieve::KnowledgeRetrieveResponse;pub use types::DocumentDetailResponse;pub use types::DocumentFailInfo;pub use types::DocumentImageItem;pub use types::DocumentImageListData;pub use types::DocumentImageListResponse;pub use types::DocumentItem;pub use types::DocumentListData;pub use types::DocumentListResponse;pub use types::KnowledgeCapacityData;pub use types::KnowledgeCapacityResponse;pub use types::KnowledgeDetailResponse;pub use types::KnowledgeItem;pub use types::KnowledgeListData;pub use types::KnowledgeListResponse;pub use types::KnowledgeUsageCounts;pub use types::UploadFileData;pub use types::UploadFileFailedInfo;pub use types::UploadFileResponse;pub use types::UploadFileSuccessInfo;pub use types::UploadUrlData;pub use types::UploadUrlFailedInfo;pub use types::UploadUrlResponse;pub use types::UploadUrlSuccessInfo;pub use update::KnowledgeUpdateRequest;pub use update::KnowledgeUpdateResponse;pub use update::UpdateKnowledgeBody;