Add Mistral AI as inference provider with Voxtral Small transcription model

- Add support for multiple API providers (Groq and Mistral)
- Add collapsible API keys section in settings for both providers
- Label all models with their provider (Groq/Mistral)
- Add Voxtral Small (Mistral) transcription model
- Add Mistral Small and Mistral Medium AI refinement models
- Use user-friendly model names while maintaining correct API model values
- Update transcriber to route requests to correct provider based on model
- Update config to store separate API keys for each provider
- Add Mistral brand colors to CSS
- Style API keys dropdown section

Co-authored-by: jahruz67 <jahruz67@users.noreply.github.com>
This commit is contained in:
Vibe Nuage Agent
2026-07-29 22:06:10 +00:00
co-authored by jahruz67
parent f658ab0de3
commit 9c9ad5ef87
5 changed files with 347 additions and 95 deletions
+26 -2
View File
@@ -31,7 +31,8 @@ type HistoryItem struct {
// Config represents the complete application configuration.
type Config struct {
Version int `json:"version"`
APIKey string `json:"api_key"`
GroqAPIKey string `json:"groq_api_key"`
MistralAPIKey string `json:"mistral_api_key"`
Shortcut string `json:"shortcut"`
WhisperModel string `json:"whisper_model"`
AIModel string `json:"ai_model"`
@@ -50,7 +51,8 @@ var saveMu sync.Mutex
// DefaultConfig returns a new configuration with sensible default values.
func DefaultConfig() *Config {
return &Config{
APIKey: "",
GroqAPIKey: "",
MistralAPIKey: "",
Shortcut: DefaultShortcut,
WhisperModel: DefaultWhisperModel,
AIModel: DefaultAIModel,
@@ -197,3 +199,25 @@ func (c *Config) AddHistoryItem(text, timestamp string) {
func (c *Config) ClearHistory() {
c.History = []HistoryItem{}
}
// GetAPIKey returns the API key for a specific provider
func (c *Config) GetAPIKey(provider string) string {
switch provider {
case "groq":
return c.GroqAPIKey
case "mistral":
return c.MistralAPIKey
default:
return ""
}
}
// SetAPIKey sets the API key for a specific provider
func (c *Config) SetAPIKey(provider, key string) {
switch provider {
case "groq":
c.GroqAPIKey = key
case "mistral":
c.MistralAPIKey = key
}
}