vapi_client/models/
anthropic_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct AnthropicModel {
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 = "model")]
33 pub model: Model,
34 #[serde(rename = "provider")]
36 pub provider: Provider,
37 #[serde(rename = "thinking", skip_serializing_if = "Option::is_none")]
39 pub thinking: Option<models::AnthropicThinkingConfig>,
40 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
42 pub temperature: Option<f64>,
43 #[serde(rename = "maxTokens", skip_serializing_if = "Option::is_none")]
45 pub max_tokens: Option<f64>,
46 #[serde(
48 rename = "emotionRecognitionEnabled",
49 skip_serializing_if = "Option::is_none"
50 )]
51 pub emotion_recognition_enabled: Option<bool>,
52 #[serde(rename = "numFastTurns", skip_serializing_if = "Option::is_none")]
54 pub num_fast_turns: Option<f64>,
55}
56
57impl AnthropicModel {
58 pub fn new(model: Model, provider: Provider) -> AnthropicModel {
59 AnthropicModel {
60 messages: None,
61 tools: None,
62 tool_ids: None,
63 knowledge_base: None,
64 knowledge_base_id: None,
65 model,
66 provider,
67 thinking: None,
68 temperature: None,
69 max_tokens: None,
70 emotion_recognition_enabled: None,
71 num_fast_turns: None,
72 }
73 }
74}
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
77pub enum Model {
78 #[serde(rename = "claude-3-opus-20240229")]
79 Claude3Opus20240229,
80 #[serde(rename = "claude-3-sonnet-20240229")]
81 Claude3Sonnet20240229,
82 #[serde(rename = "claude-3-haiku-20240307")]
83 Claude3Haiku20240307,
84 #[serde(rename = "claude-3-5-sonnet-20240620")]
85 Claude35Sonnet20240620,
86 #[serde(rename = "claude-3-5-sonnet-20241022")]
87 Claude35Sonnet20241022,
88 #[serde(rename = "claude-3-5-haiku-20241022")]
89 Claude35Haiku20241022,
90 #[serde(rename = "claude-3-7-sonnet-20250219")]
91 Claude37Sonnet20250219,
92}
93
94impl Default for Model {
95 fn default() -> Model {
96 Self::Claude3Opus20240229
97 }
98}
99#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
101pub enum Provider {
102 #[serde(rename = "anthropic")]
103 Anthropic,
104}
105
106impl Default for Provider {
107 fn default() -> Provider {
108 Self::Anthropic
109 }
110}