use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum LlmAdapter {
#[serde(rename = "anthropic")]
Anthropic,
#[serde(rename = "openai")]
Openai,
#[serde(rename = "azure")]
Azure,
#[serde(rename = "bedrock")]
Bedrock,
#[serde(rename = "google-vertex-ai")]
GoogleVertexAi,
#[serde(rename = "google-ai-studio")]
GoogleAiStudio,
}
impl std::fmt::Display for LlmAdapter {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Anthropic => write!(f, "anthropic"),
Self::Openai => write!(f, "openai"),
Self::Azure => write!(f, "azure"),
Self::Bedrock => write!(f, "bedrock"),
Self::GoogleVertexAi => write!(f, "google-vertex-ai"),
Self::GoogleAiStudio => write!(f, "google-ai-studio"),
}
}
}
impl Default for LlmAdapter {
fn default() -> LlmAdapter {
Self::Anthropic
}
}