vapi_client/models/
knowledge_base.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct KnowledgeBase {
16    /// The name of the knowledge base
17    #[serde(rename = "name")]
18    pub name: String,
19    /// The provider of the knowledge base
20    #[serde(rename = "provider")]
21    pub provider: Provider,
22    /// The model to use for the knowledge base
23    #[serde(rename = "model")]
24    pub model: Model,
25    /// A description of the knowledge base
26    #[serde(rename = "description")]
27    pub description: String,
28    /// The file IDs associated with this knowledge base
29    #[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/// The provider of the knowledge base
45#[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/// The model to use for the knowledge base
57#[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