feat: refactor
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package provider
|
||||
|
||||
// Provider name constants for config and registry
|
||||
const (
|
||||
ProviderOpenAI = "openai"
|
||||
ProviderGroq = "groq"
|
||||
ProviderMistral = "mistral"
|
||||
ProviderElevenLabs = "elevenlabs"
|
||||
ProviderDeepgram = "deepgram"
|
||||
ProviderWhisperCpp = "whisper-cpp"
|
||||
)
|
||||
|
||||
// Config provider names (used in config file transcription.provider)
|
||||
const (
|
||||
ConfigProviderOpenAI = "openai"
|
||||
ConfigProviderGroqTranscription = "groq-transcription"
|
||||
ConfigProviderGroqTranslation = "groq-translation"
|
||||
ConfigProviderMistralTranscription = "mistral-transcription"
|
||||
ConfigProviderElevenLabs = "elevenlabs"
|
||||
ConfigProviderDeepgram = "deepgram"
|
||||
ConfigProviderWhisperCpp = "whisper-cpp"
|
||||
)
|
||||
|
||||
// Environment variable names for API keys
|
||||
const (
|
||||
EnvOpenAIKey = "OPENAI_API_KEY"
|
||||
EnvGroqKey = "GROQ_API_KEY"
|
||||
EnvMistralKey = "MISTRAL_API_KEY"
|
||||
EnvElevenLabsKey = "ELEVENLABS_API_KEY"
|
||||
EnvDeepgramKey = "DEEPGRAM_API_KEY"
|
||||
)
|
||||
|
||||
// Adapter type constants for transcription backends
|
||||
const (
|
||||
AdapterOpenAI = "openai"
|
||||
AdapterElevenLabs = "elevenlabs"
|
||||
AdapterElevenLabsStream = "elevenlabs-streaming"
|
||||
AdapterDeepgram = "deepgram"
|
||||
AdapterWhisperCpp = "whisper-cpp"
|
||||
AdapterOpenAIRealtime = "openai-realtime"
|
||||
)
|
||||
|
||||
// BaseProviderName maps config provider names to registry provider names
|
||||
// e.g. "groq-transcription" -> "groq", "mistral-transcription" -> "mistral"
|
||||
func BaseProviderName(configProvider string) string {
|
||||
switch configProvider {
|
||||
case ConfigProviderGroqTranscription, ConfigProviderGroqTranslation:
|
||||
return ProviderGroq
|
||||
case ConfigProviderMistralTranscription:
|
||||
return ProviderMistral
|
||||
default:
|
||||
return configProvider
|
||||
}
|
||||
}
|
||||
|
||||
// EnvVarForProvider returns the environment variable name for a provider's API key
|
||||
func EnvVarForProvider(provider string) string {
|
||||
base := BaseProviderName(provider)
|
||||
switch base {
|
||||
case ProviderOpenAI:
|
||||
return EnvOpenAIKey
|
||||
case ProviderGroq:
|
||||
return EnvGroqKey
|
||||
case ProviderMistral:
|
||||
return EnvMistralKey
|
||||
case ProviderElevenLabs:
|
||||
return EnvElevenLabsKey
|
||||
case ProviderDeepgram:
|
||||
return EnvDeepgramKey
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user