feat: add provider interface and registry

This commit is contained in:
leonardotrapani
2026-01-31 20:34:33 +01:00
parent 5a4d99538f
commit 933bb6fc32
8 changed files with 392 additions and 1 deletions
+41
View File
@@ -0,0 +1,41 @@
package provider
// MistralProvider implements Provider for Mistral services (transcription only)
type MistralProvider struct{}
func (p *MistralProvider) Name() string {
return "mistral"
}
func (p *MistralProvider) RequiresAPIKey() bool {
return true
}
func (p *MistralProvider) ValidateAPIKey(key string) bool {
// Mistral API keys don't have a consistent prefix, just check non-empty
return len(key) > 0
}
func (p *MistralProvider) SupportsTranscription() bool {
return true
}
func (p *MistralProvider) SupportsLLM() bool {
return false
}
func (p *MistralProvider) DefaultTranscriptionModel() string {
return "voxtral-mini-latest"
}
func (p *MistralProvider) DefaultLLMModel() string {
return ""
}
func (p *MistralProvider) TranscriptionModels() []string {
return []string{"voxtral-mini-latest", "voxtral-mini-2507"}
}
func (p *MistralProvider) LLMModels() []string {
return nil
}