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
+42
View File
@@ -0,0 +1,42 @@
package provider
import "strings"
// OpenAIProvider implements Provider for OpenAI services
type OpenAIProvider struct{}
func (p *OpenAIProvider) Name() string {
return "openai"
}
func (p *OpenAIProvider) RequiresAPIKey() bool {
return true
}
func (p *OpenAIProvider) ValidateAPIKey(key string) bool {
return strings.HasPrefix(key, "sk-")
}
func (p *OpenAIProvider) SupportsTranscription() bool {
return true
}
func (p *OpenAIProvider) SupportsLLM() bool {
return true
}
func (p *OpenAIProvider) DefaultTranscriptionModel() string {
return "whisper-1"
}
func (p *OpenAIProvider) DefaultLLMModel() string {
return "gpt-4o-mini"
}
func (p *OpenAIProvider) TranscriptionModels() []string {
return []string{"whisper-1"}
}
func (p *OpenAIProvider) LLMModels() []string {
return []string{"gpt-4o-mini", "gpt-4o", "gpt-4-turbo", "gpt-3.5-turbo"}
}