vapi_client/models/
knowledge_base.rs1use 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: Provider,
22 #[serde(rename = "model")]
24 pub model: Model,
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(name: String, provider: Provider, model: Model, description: String, file_ids: Vec<String>) -> KnowledgeBase {
35 KnowledgeBase {
36 name,
37 provider,
38 model,
39 description,
40 file_ids,
41 }
42 }
43}
44#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
46pub enum Provider {
47 #[serde(rename = "google")]
48 Google,
49}
50
51impl Default for Provider {
52 fn default() -> Provider {
53 Self::Google
54 }
55}
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum Model {
59 #[serde(rename = "gemini-2.0-flash-thinking-exp")]
60 Gemini2Period0FlashThinkingExp,
61 #[serde(rename = "gemini-2.0-pro-exp-02-05")]
62 Gemini2Period0ProExp0205,
63 #[serde(rename = "gemini-2.0-flash")]
64 Gemini2Period0Flash,
65 #[serde(rename = "gemini-2.0-flash-lite")]
66 Gemini2Period0FlashLite,
67 #[serde(rename = "gemini-2.0-flash-lite-preview-02-05")]
68 Gemini2Period0FlashLitePreview0205,
69 #[serde(rename = "gemini-2.0-flash-exp")]
70 Gemini2Period0FlashExp,
71 #[serde(rename = "gemini-2.0-flash-realtime-exp")]
72 Gemini2Period0FlashRealtimeExp,
73 #[serde(rename = "gemini-1.5-flash")]
74 Gemini1Period5Flash,
75 #[serde(rename = "gemini-1.5-flash-002")]
76 Gemini1Period5Flash002,
77 #[serde(rename = "gemini-1.5-pro")]
78 Gemini1Period5Pro,
79 #[serde(rename = "gemini-1.5-pro-002")]
80 Gemini1Period5Pro002,
81 #[serde(rename = "gemini-1.0-pro")]
82 Gemini1Period0Pro,
83}
84
85impl Default for Model {
86 fn default() -> Model {
87 Self::Gemini2Period0FlashThinkingExp
88 }
89}
90