feat: refactor

This commit is contained in:
leonardotrapani
2026-02-01 17:24:43 +01:00
parent 13b1de4e04
commit 8df3021a9d
33 changed files with 1290 additions and 1577 deletions
+14 -35
View File
@@ -4,6 +4,7 @@ import (
"os"
"github.com/leonardotrapani/hyprvoice/internal/injection"
"github.com/leonardotrapani/hyprvoice/internal/provider"
"github.com/leonardotrapani/hyprvoice/internal/recording"
"github.com/leonardotrapani/hyprvoice/internal/transcriber"
)
@@ -22,11 +23,12 @@ func (c *Config) ToRecordingConfig() recording.Config {
func (c *Config) ToTranscriberConfig() transcriber.Config {
config := transcriber.Config{
Provider: c.Transcription.Provider,
Language: c.resolveEffectiveLanguage(),
Model: c.Transcription.Model,
Keywords: c.Keywords,
Threads: c.Transcription.Threads,
Provider: c.Transcription.Provider,
Language: c.resolveEffectiveLanguage(),
Model: c.Transcription.Model,
Keywords: c.Keywords,
Threads: c.Transcription.Threads,
Streaming: c.Transcription.Streaming,
}
config.APIKey = c.resolveAPIKeyForProvider(c.Transcription.Provider)
@@ -44,29 +46,12 @@ func (c *Config) resolveEffectiveLanguage() string {
}
// resolveAPIKeyForProvider returns the API key for a provider from multiple sources
func (c *Config) resolveAPIKeyForProvider(provider string) string {
providerName := provider
envVar := ""
switch provider {
case "openai":
providerName = "openai"
envVar = "OPENAI_API_KEY"
case "groq-transcription", "groq-translation":
providerName = "groq"
envVar = "GROQ_API_KEY"
case "mistral-transcription":
providerName = "mistral"
envVar = "MISTRAL_API_KEY"
case "elevenlabs":
providerName = "elevenlabs"
envVar = "ELEVENLABS_API_KEY"
case "deepgram":
providerName = "deepgram"
envVar = "DEEPGRAM_API_KEY"
}
func (c *Config) resolveAPIKeyForProvider(providerName string) string {
baseName := provider.BaseProviderName(providerName)
envVar := provider.EnvVarForProvider(providerName)
if c.Providers != nil {
if pc, ok := c.Providers[providerName]; ok && pc.APIKey != "" {
if pc, ok := c.Providers[baseName]; ok && pc.APIKey != "" {
return pc.APIKey
}
}
@@ -106,17 +91,11 @@ func (c *Config) ToLLMConfig() LLMAdapterConfig {
}
// resolveAPIKeyForLLMProvider returns the API key for an LLM provider
func (c *Config) resolveAPIKeyForLLMProvider(provider string) string {
envVar := ""
switch provider {
case "openai":
envVar = "OPENAI_API_KEY"
case "groq":
envVar = "GROQ_API_KEY"
}
func (c *Config) resolveAPIKeyForLLMProvider(providerName string) string {
envVar := provider.EnvVarForProvider(providerName)
if c.Providers != nil {
if pc, ok := c.Providers[provider]; ok && pc.APIKey != "" {
if pc, ok := c.Providers[providerName]; ok && pc.APIKey != "" {
return pc.APIKey
}
}