windmill_api/models/
ai_provider.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
16pub enum AiProvider {
17 #[serde(rename = "openai")]
18 Openai,
19 #[serde(rename = "azure_openai")]
20 AzureOpenai,
21 #[serde(rename = "anthropic")]
22 Anthropic,
23 #[serde(rename = "mistral")]
24 Mistral,
25 #[serde(rename = "deepseek")]
26 Deepseek,
27 #[serde(rename = "googleai")]
28 Googleai,
29 #[serde(rename = "groq")]
30 Groq,
31 #[serde(rename = "openrouter")]
32 Openrouter,
33 #[serde(rename = "togetherai")]
34 Togetherai,
35 #[serde(rename = "customai")]
36 Customai,
37
38}
39
40impl std::fmt::Display for AiProvider {
41 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
42 match self {
43 Self::Openai => write!(f, "openai"),
44 Self::AzureOpenai => write!(f, "azure_openai"),
45 Self::Anthropic => write!(f, "anthropic"),
46 Self::Mistral => write!(f, "mistral"),
47 Self::Deepseek => write!(f, "deepseek"),
48 Self::Googleai => write!(f, "googleai"),
49 Self::Groq => write!(f, "groq"),
50 Self::Openrouter => write!(f, "openrouter"),
51 Self::Togetherai => write!(f, "togetherai"),
52 Self::Customai => write!(f, "customai"),
53 }
54 }
55}
56
57impl Default for AiProvider {
58 fn default() -> AiProvider {
59 Self::Openai
60 }
61}
62