windmill_api/models/
ai_config.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AiConfig {
16 #[serde(rename = "providers", skip_serializing_if = "Option::is_none")]
17 pub providers: Option<std::collections::HashMap<String, models::AiProviderConfig>>,
18 #[serde(rename = "default_model", skip_serializing_if = "Option::is_none")]
19 pub default_model: Option<Box<models::AiProviderModel>>,
20 #[serde(rename = "metadata_model", skip_serializing_if = "Option::is_none")]
21 pub metadata_model: Option<Box<models::AiProviderModel>>,
22 #[serde(rename = "code_completion_model", skip_serializing_if = "Option::is_none")]
23 pub code_completion_model: Option<Box<models::AiProviderModel>>,
24 #[serde(rename = "custom_prompts", skip_serializing_if = "Option::is_none")]
25 pub custom_prompts: Option<std::collections::HashMap<String, String>>,
26 #[serde(rename = "max_tokens_per_model", skip_serializing_if = "Option::is_none")]
27 pub max_tokens_per_model: Option<std::collections::HashMap<String, i32>>,
28 #[serde(rename = "free_tier", skip_serializing_if = "Option::is_none")]
29 pub free_tier: Option<Box<models::FreeTierInfo>>,
30 #[serde(rename = "model_pricing", skip_serializing_if = "Option::is_none")]
31 pub model_pricing: Option<std::collections::HashMap<String, models::ModelPriceOverride>>,
32}
33
34impl AiConfig {
35 pub fn new() -> AiConfig {
36 AiConfig {
37 providers: None,
38 default_model: None,
39 metadata_model: None,
40 code_completion_model: None,
41 custom_prompts: None,
42 max_tokens_per_model: None,
43 free_tier: None,
44 model_pricing: None,
45 }
46 }
47}
48