Skip to main content

Module knowledge

Module knowledge 

Source
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 bases
  • list - List existing knowledge bases
  • retrieve - Retrieve knowledge base details
  • update - Update knowledge base metadata
  • delete - Delete knowledge bases
  • capacity - Check knowledge base capacity and usage

§Document Management

§Knowledge Retrieval

  • retrieve - Retrieve relevant content from knowledge base

  • types - Shared data types

§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;

Modules§

capacity
create
delete
document_delete
document_image_list
document_list
document_reembedding
document_retrieve
document_upload_file
document_upload_url
list
retrieve
types
update