feat: add provider interface and registry
This commit is contained in:
@@ -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"}
|
||||
}
|
||||
Reference in New Issue
Block a user