vapi_client/models/
vapi_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct VapiModel {
17 #[serde(rename = "messages", skip_serializing_if = "Option::is_none")]
19 pub messages: Option<Vec<models::OpenAiMessage>>,
20 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
22 pub tools: Option<Vec<models::AnyscaleModelToolsInner>>,
23 #[serde(rename = "toolIds", skip_serializing_if = "Option::is_none")]
25 pub tool_ids: Option<Vec<String>>,
26 #[serde(rename = "knowledgeBase", skip_serializing_if = "Option::is_none")]
27 pub knowledge_base: Option<models::AnyscaleModelKnowledgeBase>,
28 #[serde(rename = "knowledgeBaseId", skip_serializing_if = "Option::is_none")]
30 pub knowledge_base_id: Option<String>,
31 #[serde(rename = "steps", skip_serializing_if = "Option::is_none")]
32 pub steps: Option<Vec<models::VapiModelStepsInner>>,
33 #[serde(rename = "provider")]
34 pub provider: Provider,
35 #[serde(rename = "workflowId", skip_serializing_if = "Option::is_none")]
37 pub workflow_id: Option<String>,
38 #[serde(rename = "workflow", skip_serializing_if = "Option::is_none")]
40 pub workflow: Option<models::Workflow>,
41 #[serde(rename = "model")]
43 pub model: String,
44 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
46 pub temperature: Option<f64>,
47 #[serde(rename = "maxTokens", skip_serializing_if = "Option::is_none")]
49 pub max_tokens: Option<f64>,
50 #[serde(
52 rename = "emotionRecognitionEnabled",
53 skip_serializing_if = "Option::is_none"
54 )]
55 pub emotion_recognition_enabled: Option<bool>,
56 #[serde(rename = "numFastTurns", skip_serializing_if = "Option::is_none")]
58 pub num_fast_turns: Option<f64>,
59}
60
61impl VapiModel {
62 pub fn new(provider: Provider, model: String) -> VapiModel {
63 VapiModel {
64 messages: None,
65 tools: None,
66 tool_ids: None,
67 knowledge_base: None,
68 knowledge_base_id: None,
69 steps: None,
70 provider,
71 workflow_id: None,
72 workflow: None,
73 model,
74 temperature: None,
75 max_tokens: None,
76 emotion_recognition_enabled: None,
77 num_fast_turns: None,
78 }
79 }
80}
81#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
83pub enum Provider {
84 #[serde(rename = "vapi")]
85 Vapi,
86}
87
88impl Default for Provider {
89 fn default() -> Provider {
90 Self::Vapi
91 }
92}