feat: Add Cerebras and Fireworks as LLM providers and introduce configurable Whisper providers with dedicated API keys.
This commit is contained in:
@@ -40,19 +40,31 @@ public static class DaemonService
|
||||
|
||||
var configManager = new ConfigManager();
|
||||
var config = configManager.LoadConfig();
|
||||
if (string.IsNullOrWhiteSpace(config.GroqApiKey))
|
||||
if (config.WhisperProvider == "groq" && string.IsNullOrWhiteSpace(config.GroqApiKey))
|
||||
{
|
||||
Console.WriteLine("Groq API Key is not configured. Run 'toak onboard'.");
|
||||
Console.WriteLine("Groq API Key is not configured for Whisper. Run 'toak onboard'.");
|
||||
return;
|
||||
}
|
||||
if (config.WhisperProvider == "fireworks" && string.IsNullOrWhiteSpace(config.FireworksApiKey))
|
||||
{
|
||||
Console.WriteLine("Fireworks API Key is not configured for Whisper. Run 'toak onboard'.");
|
||||
return;
|
||||
}
|
||||
|
||||
var stateTracker = new StateTracker();
|
||||
var notifications = new Notifications();
|
||||
|
||||
var speechClient = new OpenAiCompatibleClient(config.GroqApiKey);
|
||||
ILlmClient llmClient = config.LlmProvider == "together"
|
||||
? new OpenAiCompatibleClient(config.TogetherApiKey, "https://api.together.xyz/v1/", config.ReasoningEffort)
|
||||
: new OpenAiCompatibleClient(config.GroqApiKey, "https://api.groq.com/openai/v1/", config.ReasoningEffort);
|
||||
ISpeechClient speechClient = config.WhisperProvider == "fireworks"
|
||||
? new OpenAiCompatibleClient(config.FireworksApiKey, "https://api.fireworks.ai/inference/v1/")
|
||||
: new OpenAiCompatibleClient(config.GroqApiKey);
|
||||
|
||||
ILlmClient llmClient = config.LlmProvider switch
|
||||
{
|
||||
"together" => new OpenAiCompatibleClient(config.TogetherApiKey, "https://api.together.xyz/v1/", config.ReasoningEffort),
|
||||
"cerebras" => new OpenAiCompatibleClient(config.CerebrasApiKey, "https://api.cerebras.ai/v1/", config.ReasoningEffort),
|
||||
"fireworks" => new OpenAiCompatibleClient(config.FireworksApiKey, "https://api.fireworks.ai/inference/v1/", config.ReasoningEffort),
|
||||
_ => new OpenAiCompatibleClient(config.GroqApiKey, "https://api.groq.com/openai/v1/", config.ReasoningEffort)
|
||||
};
|
||||
|
||||
IAudioRecorder recorder = config.AudioBackend == "ffmpeg"
|
||||
? new FfmpegAudioRecorder(stateTracker, notifications)
|
||||
|
||||
Reference in New Issue
Block a user