vapi_client/models/
knowledge_base.rs
1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct KnowledgeBase {
16 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "provider")]
21 pub provider: ProviderTrue,
22 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
24 pub model: Option<ModelTrue>,
25 #[serde(rename = "description")]
27 pub description: String,
28 #[serde(rename = "fileIds")]
30 pub file_ids: Vec<String>,
31}
32
33impl KnowledgeBase {
34 pub fn new(
35 name: String,
36 provider: ProviderTrue,
37 description: String,
38 file_ids: Vec<String>,
39 ) -> KnowledgeBase {
40 KnowledgeBase {
41 name,
42 provider,
43 model: None,
44 description,
45 file_ids,
46 }
47 }
48}
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
51pub enum ProviderTrue {
52 #[serde(rename = "google")]
53 Google,
54}
55
56impl Default for ProviderTrue {
57 fn default() -> ProviderTrue {
58 Self::Google
59 }
60}
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
63pub enum ModelTrue {
64 #[serde(rename = "gemini-2.5-pro-preview-05-06")]
65 Gemini2Period5ProPreview0506,
66 #[serde(rename = "gemini-2.5-flash-preview-05-20")]
67 Gemini2Period5FlashPreview0520,
68 #[serde(rename = "gemini-2.5-flash-preview-04-17")]
69 Gemini2Period5FlashPreview0417,
70 #[serde(rename = "gemini-2.0-flash-thinking-exp")]
71 Gemini2Period0FlashThinkingExp,
72 #[serde(rename = "gemini-2.0-pro-exp-02-05")]
73 Gemini2Period0ProExp0205,
74 #[serde(rename = "gemini-2.0-flash")]
75 Gemini2Period0Flash,
76 #[serde(rename = "gemini-2.0-flash-lite")]
77 Gemini2Period0FlashLite,
78 #[serde(rename = "gemini-2.0-flash-lite-preview-02-05")]
79 Gemini2Period0FlashLitePreview0205,
80 #[serde(rename = "gemini-2.0-flash-exp")]
81 Gemini2Period0FlashExp,
82 #[serde(rename = "gemini-2.0-flash-realtime-exp")]
83 Gemini2Period0FlashRealtimeExp,
84 #[serde(rename = "gemini-1.5-flash")]
85 Gemini1Period5Flash,
86 #[serde(rename = "gemini-1.5-flash-002")]
87 Gemini1Period5Flash002,
88 #[serde(rename = "gemini-1.5-pro")]
89 Gemini1Period5Pro,
90 #[serde(rename = "gemini-1.5-pro-002")]
91 Gemini1Period5Pro002,
92 #[serde(rename = "gemini-1.0-pro")]
93 Gemini1Period0Pro,
94}
95
96impl Default for ModelTrue {
97 fn default() -> ModelTrue {
98 Self::Gemini2Period5ProPreview0506
99 }
100}