kovi-plugin-ai 0.0.1

kovi plugin
Documentation
use std::sync::Arc;
use kovi::log::debug;
use kovi::RuntimeBot;
use kovi::utils::load_toml_data;
use serde::{Deserialize, Serialize};
use toml::toml;

#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Config {
    pub kind: Kind,
    pub model: String,
    pub api_key: String,
}

#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum Kind {
    Gemini
}

pub fn read_config(bot: Arc<RuntimeBot>) -> Config {
    let data_path = bot.get_data_path();
    let config_toml_path = data_path.join("config.toml");
    let default_config = toml! {
        kind = "Gemini"
        model = "gemini-3-pro-preview"
        api_key = "${API_KEY}"
    };
    let config = load_toml_data(default_config, config_toml_path).unwrap();
    debug!("{}", config.to_string());
    let config: Config = toml::from_str(&config.to_string()).unwrap();
    config
}