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