From e0ab5080eaa5ab57af8ee1ae858700ac670e92b0 Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:57:38 +0200 Subject: [PATCH] feat: Add llama.cpp api key support --- providers/LlamaCppProvider.cpp | 3 ++- settings/ProviderSettings.cpp | 15 +++++++++++++++ settings/ProviderSettings.hpp | 1 + settings/SettingsConstants.hpp | 2 ++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/providers/LlamaCppProvider.cpp b/providers/LlamaCppProvider.cpp index 0470970..322b6f1 100644 --- a/providers/LlamaCppProvider.cpp +++ b/providers/LlamaCppProvider.cpp @@ -9,6 +9,7 @@ #include "settings/CodeCompletionSettings.hpp" #include "settings/QuickRefactorSettings.hpp" #include "settings/GeneralSettings.hpp" +#include "settings/ProviderSettings.hpp" #include "tools/ToolsRegistration.hpp" #include @@ -31,7 +32,7 @@ QString LlamaCppProvider::name() const QString LlamaCppProvider::apiKey() const { - return {}; + return Settings::providerSettings().llamaCppApiKey(); } QString LlamaCppProvider::url() const diff --git a/settings/ProviderSettings.cpp b/settings/ProviderSettings.cpp index 994ca43..cc634e0 100644 --- a/settings/ProviderSettings.cpp +++ b/settings/ProviderSettings.cpp @@ -97,6 +97,15 @@ ProviderSettings::ProviderSettings() ollamaBasicAuthApiKey.setDefaultValue(""); ollamaBasicAuthApiKey.setAutoApply(true); + // llama.cpp Settings + llamaCppApiKey.setSettingsKey(Constants::LLAMA_CPP_API_KEY); + llamaCppApiKey.setLabelText(Tr::tr("llama.cpp API Key:")); + llamaCppApiKey.setDisplayStyle(Utils::StringAspect::LineEditDisplay); + llamaCppApiKey.setPlaceHolderText(Tr::tr("Enter your API key here")); + llamaCppApiKey.setHistoryCompleter(Constants::LLAMA_CPP_API_KEY_HISTORY); + llamaCppApiKey.setDefaultValue(""); + llamaCppApiKey.setAutoApply(true); + resetToDefaults.m_buttonText = Tr::tr("Reset Page to Defaults"); readSettings(); @@ -122,6 +131,8 @@ ProviderSettings::ProviderSettings() Group{title(Tr::tr("Google AI Settings")), Column{googleAiApiKey}}, Space{8}, Group{title(Tr::tr("Ollama Settings")), Column{ollamaBasicAuthApiKey}}, + Space{8}, + Group{title(Tr::tr("llama.cpp Settings")), Column{llamaCppApiKey}}, Stretch{1}}; }); } @@ -150,6 +161,9 @@ void ProviderSettings::setupConnections() connect(&ollamaBasicAuthApiKey, &ButtonAspect::changed, this, [this]() { ollamaBasicAuthApiKey.writeSettings(); }); + connect(&llamaCppApiKey, &ButtonAspect::changed, this, [this]() { + llamaCppApiKey.writeSettings(); + }); } void ProviderSettings::resetSettingsToDefaults() @@ -169,6 +183,7 @@ void ProviderSettings::resetSettingsToDefaults() resetAspect(mistralAiApiKey); resetAspect(googleAiApiKey); resetAspect(ollamaBasicAuthApiKey); + resetAspect(llamaCppApiKey); writeSettings(); } } diff --git a/settings/ProviderSettings.hpp b/settings/ProviderSettings.hpp index 26d8d74..3eff7e5 100644 --- a/settings/ProviderSettings.hpp +++ b/settings/ProviderSettings.hpp @@ -25,6 +25,7 @@ public: Utils::StringAspect codestralApiKey{this}; Utils::StringAspect googleAiApiKey{this}; Utils::StringAspect ollamaBasicAuthApiKey{this}; + Utils::StringAspect llamaCppApiKey{this}; private: void setupConnections(); diff --git a/settings/SettingsConstants.hpp b/settings/SettingsConstants.hpp index 980960f..2859176 100644 --- a/settings/SettingsConstants.hpp +++ b/settings/SettingsConstants.hpp @@ -145,6 +145,8 @@ const char GOOGLE_AI_API_KEY[] = "QodeAssist.googleAiApiKey"; const char GOOGLE_AI_API_KEY_HISTORY[] = "QodeAssist.googleAiApiKeyHistory"; const char OLLAMA_BASIC_AUTH_API_KEY[] = "QodeAssist.ollamaBasicAuthApiKey"; const char OLLAMA_BASIC_AUTH_API_KEY_HISTORY[] = "QodeAssist.ollamaBasicAuthApiKeyHistory"; +const char LLAMA_CPP_API_KEY[] = "QodeAssist.llamaCppApiKey"; +const char LLAMA_CPP_API_KEY_HISTORY[] = "QodeAssist.llamaCppApiKeyHistory"; // context settings const char CC_READ_FULL_FILE[] = "QodeAssist.ccReadFullFile";