Skip to main content

zai_rs/
knowledge.rs

1//! # Knowledge Base Module
2//!
3//! Provides knowledge-base management for the Zhipu AI API: create, update,
4//! delete knowledge bases; upload, list, and retrieve documents; perform
5//! semantic search.
6//!
7//! # Knowledge-Base Operations
8//!
9//! | Operation | Module | Description |
10//! |-----------|--------|-------------|
11//! | Create | [`KnowledgeCreateRequest`] | Create a new knowledge base |
12//! | List | [`KnowledgeListRequest`] | List knowledge bases |
13//! | Retrieve | [`KnowledgeGetRequest`] | Get knowledge-base details |
14//! | Search | [`KnowledgeSearchRequest`] | Run semantic retrieval against a knowledge base |
15//! | Update | [`KnowledgeUpdateRequest`] | Update metadata |
16//! | Delete | [`KnowledgeDeleteRequest`] | Delete a knowledge base |
17//! | Capacity | [`KnowledgeCapacityRequest`] | Check usage / quota |
18//!
19//! # Document Operations
20//!
21//! | Operation | Module | Description |
22//! |-----------|--------|-------------|
23//! | Upload (file) | [`DocumentUploadRequest`] | Upload a local file |
24//! | Upload (URL) | [`DocumentUrlUploadRequest`] | Upload from a URL |
25//! | List | [`DocumentListRequest`] | List documents in a KB |
26//! | Retrieve | [`DocumentGetRequest`] | Get document details |
27//! | Delete | [`DocumentDeleteRequest`] | Delete documents |
28//! | Re-embed | [`DocumentReembedRequest`] | Re-run vectorisation |
29//! | Images | [`DocumentImageListRequest`] | List extracted images |
30//!
31//! # Supported Document Types
32//!
33//! PDF, plain text, Markdown, Word, HTML, and more.
34//!
35//! # Usage
36//!
37//! ```rust,no_run
38//! use zai_rs::{ZaiResult, client::ZaiClient, knowledge::*};
39//!
40//! # async fn example(client: &ZaiClient) -> ZaiResult<()> {
41//! let created = KnowledgeCreateRequest::new(EmbeddingId::Embedding3New, "Product docs")
42//!     .send_via(client)
43//!     .await?;
44//! let uploaded = DocumentUploadRequest::new("knowledge-base-id")
45//!     .add_file_path("guide.pdf")
46//!     .send_via(client)
47//!     .await?;
48//! let matches = KnowledgeSearchRequest::new("knowledge-base-id", "How do I authenticate?")
49//!     .with_top_k(5)
50//!     .send_via(client)
51//!     .await?;
52//! # let _ = (created, uploaded, matches);
53//! # Ok(())
54//! # }
55//! ```
56
57/// Knowledge-base capacity / quota query.
58mod capacity;
59/// Create a new knowledge base.
60mod create;
61/// Delete a knowledge base.
62mod delete;
63/// Delete documents from a knowledge base.
64mod document_delete;
65/// List images extracted from a document.
66mod document_image_list;
67/// List documents in a knowledge base.
68mod document_list;
69/// Re-run vectorisation (embedding) for documents.
70mod document_reembedding;
71/// Retrieve document details.
72mod document_retrieve;
73/// Upload a local file as a document.
74mod document_upload_file;
75/// Upload a document from a URL.
76mod document_upload_url;
77/// List knowledge bases.
78mod list;
79/// Retrieve knowledge-base details / semantic search.
80mod retrieve;
81/// Search a knowledge base (`POST …/knowledge/retrieve`).
82mod search;
83/// Shared knowledge-base data types.
84mod types;
85/// Update knowledge-base metadata.
86mod update;
87
88pub use capacity::KnowledgeCapacityRequest;
89pub use create::{
90    BackgroundColor, EmbeddingId, KnowledgeCreateBody, KnowledgeCreateData, KnowledgeCreateRequest,
91    KnowledgeCreateResponse, KnowledgeIcon,
92};
93pub use delete::{KnowledgeDeleteRequest, KnowledgeDeleteResponse};
94pub use document_delete::{DocumentDeleteRequest, DocumentDeleteResponse};
95pub use document_image_list::DocumentImageListRequest;
96pub use document_list::{DocumentListQuery, DocumentListRequest};
97pub use document_reembedding::{
98    DocumentReembedBody, DocumentReembedRequest, DocumentReembedResponse,
99};
100pub use document_retrieve::DocumentGetRequest;
101pub use document_upload_file::{DocumentSliceType, DocumentUploadOptions, DocumentUploadRequest};
102pub use document_upload_url::{
103    DocumentUrlUploadBody, DocumentUrlUploadDetail, DocumentUrlUploadRequest,
104};
105pub use list::{KnowledgeListQuery, KnowledgeListRequest};
106pub use retrieve::KnowledgeGetRequest;
107pub use search::{
108    KnowledgeRecallMethod, KnowledgeRerankModel, KnowledgeSearchBody, KnowledgeSearchMetadata,
109    KnowledgeSearchRequest, KnowledgeSearchResponse, KnowledgeSearchResult,
110};
111pub use types::{
112    DocumentFailInfo, DocumentGetResponse, DocumentImageItem, DocumentImageListData,
113    DocumentImageListResponse, DocumentItem, DocumentListData, DocumentListResponse,
114    DocumentUploadData, DocumentUploadFailedInfo, DocumentUploadResponse,
115    DocumentUploadSuccessInfo, DocumentUrlUploadData, DocumentUrlUploadFailedInfo,
116    DocumentUrlUploadResponse, DocumentUrlUploadSuccessInfo, KnowledgeCapacityData,
117    KnowledgeCapacityResponse, KnowledgeGetResponse, KnowledgeItem, KnowledgeListData,
118    KnowledgeListResponse, KnowledgeOperationResponse, KnowledgeResponse, KnowledgeUsageCounts,
119};
120pub use update::{KnowledgeUpdateBody, KnowledgeUpdateRequest, KnowledgeUpdateResponse};