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}
29
30impl AiConfig {
31 pub fn new() -> AiConfig {
32 AiConfig {
33 providers: None,
34 default_model: None,
35 metadata_model: None,
36 code_completion_model: None,
37 custom_prompts: None,
38 max_tokens_per_model: None,
39 }
40 }
41}
42