/*
* Vapi API
*
* Voice AI for developers.
*
* The version of the OpenAPI document: 1.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OpenAiModel {
/// This is the starting state for the conversation.
#[serde(rename = "messages", skip_serializing_if = "Option::is_none")]
pub messages: Option<Vec<models::OpenAiMessage>>,
/// These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`. Both `tools` and `toolIds` can be used together.
#[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<models::AnyscaleModelToolsInner>>,
/// These are the tools that the assistant can use during the call. To use transient tools, use `tools`. Both `tools` and `toolIds` can be used together.
#[serde(rename = "toolIds", skip_serializing_if = "Option::is_none")]
pub tool_ids: Option<Vec<String>>,
#[serde(rename = "knowledgeBase", skip_serializing_if = "Option::is_none")]
pub knowledge_base: Option<models::CreateCustomKnowledgeBaseDto>,
/// This is the ID of the knowledge base the model will use.
#[serde(rename = "knowledgeBaseId", skip_serializing_if = "Option::is_none")]
pub knowledge_base_id: Option<String>,
/// This is the provider that will be used for the model.
#[serde(rename = "provider")]
pub provider: ProviderTrue,
/// This is the OpenAI model that will be used. When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/. @default undefined
#[serde(rename = "model")]
pub model: ModelTrue,
/// These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.
#[serde(rename = "fallbackModels", skip_serializing_if = "Option::is_none")]
pub fallback_models: Option<Vec<FallbackModelsTrue>>,
/// Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip. - `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation. - `strip-unsupported-validation` will keep the parameters but strip unsupported validation. @default `strip-unsupported-validation`
#[serde(
rename = "toolStrictCompatibilityMode",
skip_serializing_if = "Option::is_none"
)]
pub tool_strict_compatibility_mode: Option<ToolStrictCompatibilityModeTrue>,
/// This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
#[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
/// This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
#[serde(rename = "maxTokens", skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<f64>,
/// This determines whether we detect user's emotion while they speak and send it as an additional info to model. Default `false` because the model is usually are good at understanding the user's emotion from text. @default false
#[serde(
rename = "emotionRecognitionEnabled",
skip_serializing_if = "Option::is_none"
)]
pub emotion_recognition_enabled: Option<bool>,
/// This sets how many turns at the start of the conversation to use a smaller, faster model from the same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai. Default is 0. @default 0
#[serde(rename = "numFastTurns", skip_serializing_if = "Option::is_none")]
pub num_fast_turns: Option<f64>,
}
impl OpenAiModel {
pub fn new(provider: ProviderTrue, model: ModelTrue) -> OpenAiModel {
OpenAiModel {
messages: None,
tools: None,
tool_ids: None,
knowledge_base: None,
knowledge_base_id: None,
provider,
model,
fallback_models: None,
tool_strict_compatibility_mode: None,
temperature: None,
max_tokens: None,
emotion_recognition_enabled: None,
num_fast_turns: None,
}
}
}
/// This is the provider that will be used for the model.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "openai")]
Openai,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::Openai
}
}
/// This is the OpenAI model that will be used. When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/. @default undefined
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ModelTrue {
#[serde(rename = "gpt-4.1-2025-04-14")]
Gpt4Period120250414,
#[serde(rename = "gpt-4.1-mini-2025-04-14")]
Gpt4Period1Mini20250414,
#[serde(rename = "gpt-4.1-nano-2025-04-14")]
Gpt4Period1Nano20250414,
#[serde(rename = "gpt-4.1")]
Gpt4Period1,
#[serde(rename = "gpt-4.1-mini")]
Gpt4Period1Mini,
#[serde(rename = "gpt-4.1-nano")]
Gpt4Period1Nano,
#[serde(rename = "gpt-4.5-preview")]
Gpt4Period5Preview,
#[serde(rename = "chatgpt-4o-latest")]
Chatgpt4oLatest,
#[serde(rename = "o3")]
O3,
#[serde(rename = "o3-mini")]
O3Mini,
#[serde(rename = "o4-mini")]
O4Mini,
#[serde(rename = "o1-preview")]
O1Preview,
#[serde(rename = "o1-preview-2024-09-12")]
O1Preview20240912,
#[serde(rename = "o1-mini")]
O1Mini,
#[serde(rename = "o1-mini-2024-09-12")]
O1Mini20240912,
#[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
Gpt4oRealtimePreview20241001,
#[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
Gpt4oRealtimePreview20241217,
#[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
Gpt4oMiniRealtimePreview20241217,
#[serde(rename = "gpt-4o-mini-2024-07-18")]
Gpt4oMini20240718,
#[serde(rename = "gpt-4o-mini")]
Gpt4oMini,
#[serde(rename = "gpt-4o")]
Gpt4o,
#[serde(rename = "gpt-4o-2024-05-13")]
Gpt4o20240513,
#[serde(rename = "gpt-4o-2024-08-06")]
Gpt4o20240806,
#[serde(rename = "gpt-4o-2024-11-20")]
Gpt4o20241120,
#[serde(rename = "gpt-4-turbo")]
Gpt4Turbo,
#[serde(rename = "gpt-4-turbo-2024-04-09")]
Gpt4Turbo20240409,
#[serde(rename = "gpt-4-turbo-preview")]
Gpt4TurboPreview,
#[serde(rename = "gpt-4-0125-preview")]
Gpt40125Preview,
#[serde(rename = "gpt-4-1106-preview")]
Gpt41106Preview,
#[serde(rename = "gpt-4")]
Gpt4,
#[serde(rename = "gpt-4-0613")]
Gpt40613,
#[serde(rename = "gpt-3.5-turbo")]
Gpt3Period5Turbo,
#[serde(rename = "gpt-3.5-turbo-0125")]
Gpt3Period5Turbo0125,
#[serde(rename = "gpt-3.5-turbo-1106")]
Gpt3Period5Turbo1106,
#[serde(rename = "gpt-3.5-turbo-16k")]
Gpt3Period5Turbo16k,
#[serde(rename = "gpt-3.5-turbo-0613")]
Gpt3Period5Turbo0613,
#[serde(rename = "gpt-4.1-2025-04-14:westus")]
Gpt4Period120250414ColonWestus,
#[serde(rename = "gpt-4.1-2025-04-14:eastus2")]
Gpt4Period120250414ColonEastus2,
#[serde(rename = "gpt-4.1-2025-04-14:eastus")]
Gpt4Period120250414ColonEastus,
#[serde(rename = "gpt-4.1-2025-04-14:westus3")]
Gpt4Period120250414ColonWestus3,
#[serde(rename = "gpt-4.1-2025-04-14:northcentralus")]
Gpt4Period120250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-2025-04-14:southcentralus")]
Gpt4Period120250414ColonSouthcentralus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:westus")]
Gpt4Period1Mini20250414ColonWestus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:eastus2")]
Gpt4Period1Mini20250414ColonEastus2,
#[serde(rename = "gpt-4.1-mini-2025-04-14:eastus")]
Gpt4Period1Mini20250414ColonEastus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:westus3")]
Gpt4Period1Mini20250414ColonWestus3,
#[serde(rename = "gpt-4.1-mini-2025-04-14:northcentralus")]
Gpt4Period1Mini20250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:southcentralus")]
Gpt4Period1Mini20250414ColonSouthcentralus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:westus")]
Gpt4Period1Nano20250414ColonWestus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:eastus2")]
Gpt4Period1Nano20250414ColonEastus2,
#[serde(rename = "gpt-4.1-nano-2025-04-14:westus3")]
Gpt4Period1Nano20250414ColonWestus3,
#[serde(rename = "gpt-4.1-nano-2025-04-14:northcentralus")]
Gpt4Period1Nano20250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:southcentralus")]
Gpt4Period1Nano20250414ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-11-20:swedencentral")]
Gpt4o20241120ColonSwedencentral,
#[serde(rename = "gpt-4o-2024-11-20:westus")]
Gpt4o20241120ColonWestus,
#[serde(rename = "gpt-4o-2024-11-20:eastus2")]
Gpt4o20241120ColonEastus2,
#[serde(rename = "gpt-4o-2024-11-20:eastus")]
Gpt4o20241120ColonEastus,
#[serde(rename = "gpt-4o-2024-11-20:westus3")]
Gpt4o20241120ColonWestus3,
#[serde(rename = "gpt-4o-2024-11-20:southcentralus")]
Gpt4o20241120ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-08-06:westus")]
Gpt4o20240806ColonWestus,
#[serde(rename = "gpt-4o-2024-08-06:westus3")]
Gpt4o20240806ColonWestus3,
#[serde(rename = "gpt-4o-2024-08-06:eastus")]
Gpt4o20240806ColonEastus,
#[serde(rename = "gpt-4o-2024-08-06:eastus2")]
Gpt4o20240806ColonEastus2,
#[serde(rename = "gpt-4o-2024-08-06:northcentralus")]
Gpt4o20240806ColonNorthcentralus,
#[serde(rename = "gpt-4o-2024-08-06:southcentralus")]
Gpt4o20240806ColonSouthcentralus,
#[serde(rename = "gpt-4o-mini-2024-07-18:westus")]
Gpt4oMini20240718ColonWestus,
#[serde(rename = "gpt-4o-mini-2024-07-18:westus3")]
Gpt4oMini20240718ColonWestus3,
#[serde(rename = "gpt-4o-mini-2024-07-18:eastus")]
Gpt4oMini20240718ColonEastus,
#[serde(rename = "gpt-4o-mini-2024-07-18:eastus2")]
Gpt4oMini20240718ColonEastus2,
#[serde(rename = "gpt-4o-mini-2024-07-18:northcentralus")]
Gpt4oMini20240718ColonNorthcentralus,
#[serde(rename = "gpt-4o-mini-2024-07-18:southcentralus")]
Gpt4oMini20240718ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:eastus2")]
Gpt4o20240513ColonEastus2,
#[serde(rename = "gpt-4o-2024-05-13:eastus")]
Gpt4o20240513ColonEastus,
#[serde(rename = "gpt-4o-2024-05-13:northcentralus")]
Gpt4o20240513ColonNorthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:southcentralus")]
Gpt4o20240513ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:westus3")]
Gpt4o20240513ColonWestus3,
#[serde(rename = "gpt-4o-2024-05-13:westus")]
Gpt4o20240513ColonWestus,
#[serde(rename = "gpt-4-turbo-2024-04-09:eastus2")]
Gpt4Turbo20240409ColonEastus2,
#[serde(rename = "gpt-4-0125-preview:eastus")]
Gpt40125PreviewColonEastus,
#[serde(rename = "gpt-4-0125-preview:northcentralus")]
Gpt40125PreviewColonNorthcentralus,
#[serde(rename = "gpt-4-0125-preview:southcentralus")]
Gpt40125PreviewColonSouthcentralus,
#[serde(rename = "gpt-4-1106-preview:australia")]
Gpt41106PreviewColonAustralia,
#[serde(rename = "gpt-4-1106-preview:canadaeast")]
Gpt41106PreviewColonCanadaeast,
#[serde(rename = "gpt-4-1106-preview:france")]
Gpt41106PreviewColonFrance,
#[serde(rename = "gpt-4-1106-preview:india")]
Gpt41106PreviewColonIndia,
#[serde(rename = "gpt-4-1106-preview:norway")]
Gpt41106PreviewColonNorway,
#[serde(rename = "gpt-4-1106-preview:swedencentral")]
Gpt41106PreviewColonSwedencentral,
#[serde(rename = "gpt-4-1106-preview:uk")]
Gpt41106PreviewColonUk,
#[serde(rename = "gpt-4-1106-preview:westus")]
Gpt41106PreviewColonWestus,
#[serde(rename = "gpt-4-1106-preview:westus3")]
Gpt41106PreviewColonWestus3,
#[serde(rename = "gpt-4-0613:canadaeast")]
Gpt40613ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-0125:canadaeast")]
Gpt3Period5Turbo0125ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-0125:northcentralus")]
Gpt3Period5Turbo0125ColonNorthcentralus,
#[serde(rename = "gpt-3.5-turbo-0125:southcentralus")]
Gpt3Period5Turbo0125ColonSouthcentralus,
#[serde(rename = "gpt-3.5-turbo-1106:canadaeast")]
Gpt3Period5Turbo1106ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-1106:westus")]
Gpt3Period5Turbo1106ColonWestus,
}
impl Default for ModelTrue {
fn default() -> ModelTrue {
Self::Gpt4Period120250414
}
}
/// These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum FallbackModelsTrue {
#[serde(rename = "gpt-4.1-2025-04-14")]
Gpt4Period120250414,
#[serde(rename = "gpt-4.1-mini-2025-04-14")]
Gpt4Period1Mini20250414,
#[serde(rename = "gpt-4.1-nano-2025-04-14")]
Gpt4Period1Nano20250414,
#[serde(rename = "gpt-4.1")]
Gpt4Period1,
#[serde(rename = "gpt-4.1-mini")]
Gpt4Period1Mini,
#[serde(rename = "gpt-4.1-nano")]
Gpt4Period1Nano,
#[serde(rename = "gpt-4.5-preview")]
Gpt4Period5Preview,
#[serde(rename = "chatgpt-4o-latest")]
Chatgpt4oLatest,
#[serde(rename = "o3")]
O3,
#[serde(rename = "o3-mini")]
O3Mini,
#[serde(rename = "o4-mini")]
O4Mini,
#[serde(rename = "o1-preview")]
O1Preview,
#[serde(rename = "o1-preview-2024-09-12")]
O1Preview20240912,
#[serde(rename = "o1-mini")]
O1Mini,
#[serde(rename = "o1-mini-2024-09-12")]
O1Mini20240912,
#[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
Gpt4oRealtimePreview20241001,
#[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
Gpt4oRealtimePreview20241217,
#[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
Gpt4oMiniRealtimePreview20241217,
#[serde(rename = "gpt-4o-mini-2024-07-18")]
Gpt4oMini20240718,
#[serde(rename = "gpt-4o-mini")]
Gpt4oMini,
#[serde(rename = "gpt-4o")]
Gpt4o,
#[serde(rename = "gpt-4o-2024-05-13")]
Gpt4o20240513,
#[serde(rename = "gpt-4o-2024-08-06")]
Gpt4o20240806,
#[serde(rename = "gpt-4o-2024-11-20")]
Gpt4o20241120,
#[serde(rename = "gpt-4-turbo")]
Gpt4Turbo,
#[serde(rename = "gpt-4-turbo-2024-04-09")]
Gpt4Turbo20240409,
#[serde(rename = "gpt-4-turbo-preview")]
Gpt4TurboPreview,
#[serde(rename = "gpt-4-0125-preview")]
Gpt40125Preview,
#[serde(rename = "gpt-4-1106-preview")]
Gpt41106Preview,
#[serde(rename = "gpt-4")]
Gpt4,
#[serde(rename = "gpt-4-0613")]
Gpt40613,
#[serde(rename = "gpt-3.5-turbo")]
Gpt3Period5Turbo,
#[serde(rename = "gpt-3.5-turbo-0125")]
Gpt3Period5Turbo0125,
#[serde(rename = "gpt-3.5-turbo-1106")]
Gpt3Period5Turbo1106,
#[serde(rename = "gpt-3.5-turbo-16k")]
Gpt3Period5Turbo16k,
#[serde(rename = "gpt-3.5-turbo-0613")]
Gpt3Period5Turbo0613,
#[serde(rename = "gpt-4.1-2025-04-14:westus")]
Gpt4Period120250414ColonWestus,
#[serde(rename = "gpt-4.1-2025-04-14:eastus2")]
Gpt4Period120250414ColonEastus2,
#[serde(rename = "gpt-4.1-2025-04-14:eastus")]
Gpt4Period120250414ColonEastus,
#[serde(rename = "gpt-4.1-2025-04-14:westus3")]
Gpt4Period120250414ColonWestus3,
#[serde(rename = "gpt-4.1-2025-04-14:northcentralus")]
Gpt4Period120250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-2025-04-14:southcentralus")]
Gpt4Period120250414ColonSouthcentralus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:westus")]
Gpt4Period1Mini20250414ColonWestus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:eastus2")]
Gpt4Period1Mini20250414ColonEastus2,
#[serde(rename = "gpt-4.1-mini-2025-04-14:eastus")]
Gpt4Period1Mini20250414ColonEastus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:westus3")]
Gpt4Period1Mini20250414ColonWestus3,
#[serde(rename = "gpt-4.1-mini-2025-04-14:northcentralus")]
Gpt4Period1Mini20250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-mini-2025-04-14:southcentralus")]
Gpt4Period1Mini20250414ColonSouthcentralus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:westus")]
Gpt4Period1Nano20250414ColonWestus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:eastus2")]
Gpt4Period1Nano20250414ColonEastus2,
#[serde(rename = "gpt-4.1-nano-2025-04-14:westus3")]
Gpt4Period1Nano20250414ColonWestus3,
#[serde(rename = "gpt-4.1-nano-2025-04-14:northcentralus")]
Gpt4Period1Nano20250414ColonNorthcentralus,
#[serde(rename = "gpt-4.1-nano-2025-04-14:southcentralus")]
Gpt4Period1Nano20250414ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-11-20:swedencentral")]
Gpt4o20241120ColonSwedencentral,
#[serde(rename = "gpt-4o-2024-11-20:westus")]
Gpt4o20241120ColonWestus,
#[serde(rename = "gpt-4o-2024-11-20:eastus2")]
Gpt4o20241120ColonEastus2,
#[serde(rename = "gpt-4o-2024-11-20:eastus")]
Gpt4o20241120ColonEastus,
#[serde(rename = "gpt-4o-2024-11-20:westus3")]
Gpt4o20241120ColonWestus3,
#[serde(rename = "gpt-4o-2024-11-20:southcentralus")]
Gpt4o20241120ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-08-06:westus")]
Gpt4o20240806ColonWestus,
#[serde(rename = "gpt-4o-2024-08-06:westus3")]
Gpt4o20240806ColonWestus3,
#[serde(rename = "gpt-4o-2024-08-06:eastus")]
Gpt4o20240806ColonEastus,
#[serde(rename = "gpt-4o-2024-08-06:eastus2")]
Gpt4o20240806ColonEastus2,
#[serde(rename = "gpt-4o-2024-08-06:northcentralus")]
Gpt4o20240806ColonNorthcentralus,
#[serde(rename = "gpt-4o-2024-08-06:southcentralus")]
Gpt4o20240806ColonSouthcentralus,
#[serde(rename = "gpt-4o-mini-2024-07-18:westus")]
Gpt4oMini20240718ColonWestus,
#[serde(rename = "gpt-4o-mini-2024-07-18:westus3")]
Gpt4oMini20240718ColonWestus3,
#[serde(rename = "gpt-4o-mini-2024-07-18:eastus")]
Gpt4oMini20240718ColonEastus,
#[serde(rename = "gpt-4o-mini-2024-07-18:eastus2")]
Gpt4oMini20240718ColonEastus2,
#[serde(rename = "gpt-4o-mini-2024-07-18:northcentralus")]
Gpt4oMini20240718ColonNorthcentralus,
#[serde(rename = "gpt-4o-mini-2024-07-18:southcentralus")]
Gpt4oMini20240718ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:eastus2")]
Gpt4o20240513ColonEastus2,
#[serde(rename = "gpt-4o-2024-05-13:eastus")]
Gpt4o20240513ColonEastus,
#[serde(rename = "gpt-4o-2024-05-13:northcentralus")]
Gpt4o20240513ColonNorthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:southcentralus")]
Gpt4o20240513ColonSouthcentralus,
#[serde(rename = "gpt-4o-2024-05-13:westus3")]
Gpt4o20240513ColonWestus3,
#[serde(rename = "gpt-4o-2024-05-13:westus")]
Gpt4o20240513ColonWestus,
#[serde(rename = "gpt-4-turbo-2024-04-09:eastus2")]
Gpt4Turbo20240409ColonEastus2,
#[serde(rename = "gpt-4-0125-preview:eastus")]
Gpt40125PreviewColonEastus,
#[serde(rename = "gpt-4-0125-preview:northcentralus")]
Gpt40125PreviewColonNorthcentralus,
#[serde(rename = "gpt-4-0125-preview:southcentralus")]
Gpt40125PreviewColonSouthcentralus,
#[serde(rename = "gpt-4-1106-preview:australia")]
Gpt41106PreviewColonAustralia,
#[serde(rename = "gpt-4-1106-preview:canadaeast")]
Gpt41106PreviewColonCanadaeast,
#[serde(rename = "gpt-4-1106-preview:france")]
Gpt41106PreviewColonFrance,
#[serde(rename = "gpt-4-1106-preview:india")]
Gpt41106PreviewColonIndia,
#[serde(rename = "gpt-4-1106-preview:norway")]
Gpt41106PreviewColonNorway,
#[serde(rename = "gpt-4-1106-preview:swedencentral")]
Gpt41106PreviewColonSwedencentral,
#[serde(rename = "gpt-4-1106-preview:uk")]
Gpt41106PreviewColonUk,
#[serde(rename = "gpt-4-1106-preview:westus")]
Gpt41106PreviewColonWestus,
#[serde(rename = "gpt-4-1106-preview:westus3")]
Gpt41106PreviewColonWestus3,
#[serde(rename = "gpt-4-0613:canadaeast")]
Gpt40613ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-0125:canadaeast")]
Gpt3Period5Turbo0125ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-0125:northcentralus")]
Gpt3Period5Turbo0125ColonNorthcentralus,
#[serde(rename = "gpt-3.5-turbo-0125:southcentralus")]
Gpt3Period5Turbo0125ColonSouthcentralus,
#[serde(rename = "gpt-3.5-turbo-1106:canadaeast")]
Gpt3Period5Turbo1106ColonCanadaeast,
#[serde(rename = "gpt-3.5-turbo-1106:westus")]
Gpt3Period5Turbo1106ColonWestus,
}
impl Default for FallbackModelsTrue {
fn default() -> FallbackModelsTrue {
Self::Gpt4Period120250414
}
}
/// Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip. - `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation. - `strip-unsupported-validation` will keep the parameters but strip unsupported validation. @default `strip-unsupported-validation`
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ToolStrictCompatibilityModeTrue {
#[serde(rename = "strip-parameters-with-unsupported-validation")]
StripParametersWithUnsupportedValidation,
#[serde(rename = "strip-unsupported-validation")]
StripUnsupportedValidation,
}
impl Default for ToolStrictCompatibilityModeTrue {
fn default() -> ToolStrictCompatibilityModeTrue {
Self::StripParametersWithUnsupportedValidation
}
}