mirror of
https://github.com/katanemo/plano.git
synced 2026-05-15 11:02:39 +02:00
feat(provider): add xiaomi as first-class provider
This commit is contained in:
parent
76ff353c1e
commit
f092cd4917
6 changed files with 45 additions and 0 deletions
|
|
@ -339,6 +339,8 @@ pub enum LlmProviderType {
|
|||
Mistral,
|
||||
#[serde(rename = "openai")]
|
||||
OpenAI,
|
||||
#[serde(rename = "xiaomi")]
|
||||
Xiaomi,
|
||||
#[serde(rename = "gemini")]
|
||||
Gemini,
|
||||
#[serde(rename = "xai")]
|
||||
|
|
@ -370,6 +372,7 @@ impl Display for LlmProviderType {
|
|||
LlmProviderType::Gemini => write!(f, "gemini"),
|
||||
LlmProviderType::Mistral => write!(f, "mistral"),
|
||||
LlmProviderType::OpenAI => write!(f, "openai"),
|
||||
LlmProviderType::Xiaomi => write!(f, "xiaomi"),
|
||||
LlmProviderType::XAI => write!(f, "xai"),
|
||||
LlmProviderType::TogetherAI => write!(f, "together_ai"),
|
||||
LlmProviderType::AzureOpenAI => write!(f, "azure_openai"),
|
||||
|
|
|
|||
|
|
@ -316,6 +316,12 @@ fn fetch_all_models() -> Result<ProviderModels, Box<dyn std::error::Error>> {
|
|||
"https://open.bigmodel.cn/api/paas/v4/models",
|
||||
"z-ai",
|
||||
),
|
||||
(
|
||||
"xiaomi",
|
||||
"MIMO_API_KEY",
|
||||
"https://api.xiaomimimo.com/v1/models",
|
||||
"xiaomi",
|
||||
),
|
||||
];
|
||||
|
||||
// Fetch from OpenAI-compatible providers
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ fn load_provider_models() -> &'static HashMap<String, Vec<String>> {
|
|||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub enum ProviderId {
|
||||
OpenAI,
|
||||
Xiaomi,
|
||||
Mistral,
|
||||
Deepseek,
|
||||
Groq,
|
||||
|
|
@ -51,6 +52,7 @@ impl TryFrom<&str> for ProviderId {
|
|||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||
match value.to_lowercase().as_str() {
|
||||
"openai" => Ok(ProviderId::OpenAI),
|
||||
"xiaomi" => Ok(ProviderId::Xiaomi),
|
||||
"mistral" => Ok(ProviderId::Mistral),
|
||||
"deepseek" => Ok(ProviderId::Deepseek),
|
||||
"groq" => Ok(ProviderId::Groq),
|
||||
|
|
@ -84,6 +86,7 @@ impl ProviderId {
|
|||
ProviderId::TogetherAI => "together",
|
||||
ProviderId::Gemini => "google",
|
||||
ProviderId::OpenAI => "openai",
|
||||
ProviderId::Xiaomi => "xiaomi",
|
||||
ProviderId::Anthropic => "anthropic",
|
||||
ProviderId::Mistral => "mistralai",
|
||||
ProviderId::Deepseek => "deepseek",
|
||||
|
|
@ -132,6 +135,7 @@ impl ProviderId {
|
|||
// OpenAI-compatible providers only support OpenAI chat completions
|
||||
(
|
||||
ProviderId::OpenAI
|
||||
| ProviderId::Xiaomi
|
||||
| ProviderId::Groq
|
||||
| ProviderId::Mistral
|
||||
| ProviderId::Deepseek
|
||||
|
|
@ -150,6 +154,7 @@ impl ProviderId {
|
|||
|
||||
(
|
||||
ProviderId::OpenAI
|
||||
| ProviderId::Xiaomi
|
||||
| ProviderId::Groq
|
||||
| ProviderId::Mistral
|
||||
| ProviderId::Deepseek
|
||||
|
|
@ -213,6 +218,7 @@ impl Display for ProviderId {
|
|||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
ProviderId::OpenAI => write!(f, "OpenAI"),
|
||||
ProviderId::Xiaomi => write!(f, "xiaomi"),
|
||||
ProviderId::Mistral => write!(f, "Mistral"),
|
||||
ProviderId::Deepseek => write!(f, "Deepseek"),
|
||||
ProviderId::Groq => write!(f, "Groq"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue