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