Skip to main content

Overview

The ListKnowledgeBasesOptions struct provides filtering and pagination options when fetching AI knowledge bases.

Definition

pub struct ListKnowledgeBasesOptions {
    pub page: Option<u32>,
    pub per_page: Option<u32>,
    pub search: Option<String>,
}

Fields

page
Option<u32>
The page number to retrieve (1-indexed). Defaults to 1 if not specified.
per_page
Option<u32>
Number of knowledge bases to return per page. Defaults to 20 if not specified.
Search query to filter knowledge bases by name, description, or other attributes.

Usage Example

use wacht::api::knowledge_bases::{fetch_knowledge_bases, ListKnowledgeBasesOptions};

// Fetch all knowledge bases with default pagination
let all_kb = fetch_knowledge_bases(None).await?;

// Search for specific knowledge bases
let search_options = ListKnowledgeBasesOptions {
    search: Some("technical documentation".to_string()),
    ..Default::default()
};
let tech_kb = fetch_knowledge_bases(Some(search_options)).await?;

// Custom pagination
let page_options = ListKnowledgeBasesOptions {
    page: Some(2),
    per_page: Some(50),
    search: None,
};
let page_2 = fetch_knowledge_bases(Some(page_options)).await?;

// Fetch all knowledge bases across all pages
let mut all_knowledge_bases = Vec::new();
let mut page = 1;

loop {
    let options = ListKnowledgeBasesOptions {
        page: Some(page),
        per_page: Some(100),
        ..Default::default()
    };

    let response = fetch_knowledge_bases(Some(options)).await?;
    all_knowledge_bases.extend(response.data);

    if !response.has_more {
        break;
    }
    page += 1;
}

println!("Total knowledge bases: {}", all_knowledge_bases.len());

See Also