vapi_client/models/
trieve_knowledge_base_search_plan.rs1use serde::{Deserialize, Serialize};
12use utoipa::OpenApi;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, OpenApi)]
18pub struct TrieveKnowledgeBaseSearchPlan {
19 #[serde(rename = "topK", skip_serializing_if = "Option::is_none")]
21 pub top_k: Option<f64>,
22 #[serde(rename = "removeStopWords", skip_serializing_if = "Option::is_none")]
24 pub remove_stop_words: Option<bool>,
25 #[serde(rename = "scoreThreshold", skip_serializing_if = "Option::is_none")]
27 pub score_threshold: Option<f64>,
28 #[serde(rename = "searchType")]
30 pub search_type: SearchType,
31}
32
33impl TrieveKnowledgeBaseSearchPlan {
34 pub fn new(search_type: SearchType) -> TrieveKnowledgeBaseSearchPlan {
35 TrieveKnowledgeBaseSearchPlan {
36 top_k: None,
37 remove_stop_words: None,
38 score_threshold: None,
39 search_type,
40 }
41 }
42}
43#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
45pub enum SearchType {
46 #[serde(rename = "fulltext")]
47 Fulltext,
48 #[serde(rename = "semantic")]
49 Semantic,
50 #[serde(rename = "hybrid")]
51 Hybrid,
52 #[serde(rename = "bm25")]
53 Bm25,
54}
55
56impl Default for SearchType {
57 fn default() -> SearchType {
58 Self::Fulltext
59 }
60}