Add Xiaomi MiMo provider (mimo-v2.5) support
CI / Lint (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled

This commit is contained in:
newkirk
2026-05-29 12:19:24 -04:00
parent 1dc5f586b9
commit b3354a1bbc
7 changed files with 177 additions and 4 deletions
+15
View File
@@ -37,6 +37,7 @@ type ProviderConfig struct {
Moonshot MoonshotConfig `mapstructure:"moonshot"`
Grok GrokConfig `mapstructure:"grok"`
Ollama OllamaConfig `mapstructure:"ollama"`
Xiaomi XiaomiConfig `mapstructure:"xiaomi"`
}
type OpenAIConfig struct {
@@ -81,6 +82,13 @@ type OllamaConfig struct {
Models []string `mapstructure:"models"`
}
type XiaomiConfig struct {
APIKeyEnv string `mapstructure:"api_key_env"`
BaseURL string `mapstructure:"base_url"`
DefaultModel string `mapstructure:"default_model"`
Enabled bool `mapstructure:"enabled"`
}
func Load() (*Config, error) {
v := viper.New()
@@ -120,6 +128,11 @@ func Load() (*Config, error) {
v.SetDefault("providers.ollama.enabled", false)
v.SetDefault("providers.ollama.models", []string{})
v.SetDefault("providers.xiaomi.api_key_env", "XIAOMI_API_KEY")
v.SetDefault("providers.xiaomi.base_url", "https://api.xiaomimimo.com/v1")
v.SetDefault("providers.xiaomi.default_model", "mimo-v2.5")
v.SetDefault("providers.xiaomi.enabled", true)
// Environment variables
v.SetEnvPrefix("LLM_PROXY")
v.SetEnvKeyReplacer(strings.NewReplacer(".", "__"))
@@ -210,6 +223,8 @@ func (c *Config) GetAPIKey(provider string) (string, error) {
case "ollama":
// Ollama doesn't require an API key
return "", nil
case "xiaomi":
envVar = c.Providers.Xiaomi.APIKeyEnv
default:
return "", fmt.Errorf("unknown provider: %s", provider)
}