mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2025-05-28 03:10:28 -04:00
feat: Add Codestral as separate ai provider (#171)
This commit is contained in:
parent
7a33425d1a
commit
9a54f04a0d
@ -92,6 +92,7 @@ add_qtc_plugin(QodeAssist
|
|||||||
providers/OpenRouterAIProvider.hpp providers/OpenRouterAIProvider.cpp
|
providers/OpenRouterAIProvider.hpp providers/OpenRouterAIProvider.cpp
|
||||||
providers/GoogleAIProvider.hpp providers/GoogleAIProvider.cpp
|
providers/GoogleAIProvider.hpp providers/GoogleAIProvider.cpp
|
||||||
providers/LlamaCppProvider.hpp providers/LlamaCppProvider.cpp
|
providers/LlamaCppProvider.hpp providers/LlamaCppProvider.cpp
|
||||||
|
providers/CodestralProvider.hpp providers/CodestralProvider.cpp
|
||||||
QodeAssist.qrc
|
QodeAssist.qrc
|
||||||
LSPCompletion.hpp
|
LSPCompletion.hpp
|
||||||
LLMSuggestion.hpp LLMSuggestion.cpp
|
LLMSuggestion.hpp LLMSuggestion.cpp
|
||||||
|
46
providers/CodestralProvider.cpp
Normal file
46
providers/CodestralProvider.cpp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2025 Petr Mironychev
|
||||||
|
*
|
||||||
|
* This file is part of QodeAssist.
|
||||||
|
*
|
||||||
|
* QodeAssist is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* QodeAssist is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with QodeAssist. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "CodestralProvider.hpp"
|
||||||
|
|
||||||
|
#include "settings/ProviderSettings.hpp"
|
||||||
|
|
||||||
|
namespace QodeAssist::Providers {
|
||||||
|
|
||||||
|
QString CodestralProvider::name() const
|
||||||
|
{
|
||||||
|
return "Codestral";
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CodestralProvider::url() const
|
||||||
|
{
|
||||||
|
return "https://codestral.mistral.ai";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CodestralProvider::supportsModelListing() const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CodestralProvider::apiKey() const
|
||||||
|
{
|
||||||
|
return Settings::providerSettings().codestralApiKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace QodeAssist::Providers
|
35
providers/CodestralProvider.hpp
Normal file
35
providers/CodestralProvider.hpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2025 Petr Mironychev
|
||||||
|
*
|
||||||
|
* This file is part of QodeAssist.
|
||||||
|
*
|
||||||
|
* QodeAssist is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* QodeAssist is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with QodeAssist. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "MistralAIProvider.hpp"
|
||||||
|
|
||||||
|
namespace QodeAssist::Providers {
|
||||||
|
|
||||||
|
class CodestralProvider : public MistralAIProvider
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QString name() const override;
|
||||||
|
QString url() const override;
|
||||||
|
bool supportsModelListing() const override;
|
||||||
|
QString apiKey() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace QodeAssist::Providers
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "llmcore/ProvidersManager.hpp"
|
#include "llmcore/ProvidersManager.hpp"
|
||||||
#include "providers/ClaudeProvider.hpp"
|
#include "providers/ClaudeProvider.hpp"
|
||||||
|
#include "providers/CodestralProvider.hpp"
|
||||||
#include "providers/GoogleAIProvider.hpp"
|
#include "providers/GoogleAIProvider.hpp"
|
||||||
#include "providers/LMStudioProvider.hpp"
|
#include "providers/LMStudioProvider.hpp"
|
||||||
#include "providers/LlamaCppProvider.hpp"
|
#include "providers/LlamaCppProvider.hpp"
|
||||||
@ -44,6 +45,7 @@ inline void registerProviders()
|
|||||||
providerManager.registerProvider<MistralAIProvider>();
|
providerManager.registerProvider<MistralAIProvider>();
|
||||||
providerManager.registerProvider<GoogleAIProvider>();
|
providerManager.registerProvider<GoogleAIProvider>();
|
||||||
providerManager.registerProvider<LlamaCppProvider>();
|
providerManager.registerProvider<LlamaCppProvider>();
|
||||||
|
providerManager.registerProvider<CodestralProvider>();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace QodeAssist::Providers
|
} // namespace QodeAssist::Providers
|
||||||
|
@ -87,6 +87,14 @@ ProviderSettings::ProviderSettings()
|
|||||||
mistralAiApiKey.setDefaultValue("");
|
mistralAiApiKey.setDefaultValue("");
|
||||||
mistralAiApiKey.setAutoApply(true);
|
mistralAiApiKey.setAutoApply(true);
|
||||||
|
|
||||||
|
codestralApiKey.setSettingsKey(Constants::CODESTRAL_API_KEY);
|
||||||
|
codestralApiKey.setLabelText(Tr::tr("Codestral API Key:"));
|
||||||
|
codestralApiKey.setDisplayStyle(Utils::StringAspect::LineEditDisplay);
|
||||||
|
codestralApiKey.setPlaceHolderText(Tr::tr("Enter your API key here"));
|
||||||
|
codestralApiKey.setHistoryCompleter(Constants::CODESTRAL_API_KEY_HISTORY);
|
||||||
|
codestralApiKey.setDefaultValue("");
|
||||||
|
codestralApiKey.setAutoApply(true);
|
||||||
|
|
||||||
// GoogleAI Settings
|
// GoogleAI Settings
|
||||||
googleAiApiKey.setSettingsKey(Constants::GOOGLE_AI_API_KEY);
|
googleAiApiKey.setSettingsKey(Constants::GOOGLE_AI_API_KEY);
|
||||||
googleAiApiKey.setLabelText(Tr::tr("Google AI API Key:"));
|
googleAiApiKey.setLabelText(Tr::tr("Google AI API Key:"));
|
||||||
@ -125,7 +133,7 @@ ProviderSettings::ProviderSettings()
|
|||||||
Space{8},
|
Space{8},
|
||||||
Group{title(Tr::tr("Claude Settings")), Column{claudeApiKey}},
|
Group{title(Tr::tr("Claude Settings")), Column{claudeApiKey}},
|
||||||
Space{8},
|
Space{8},
|
||||||
Group{title(Tr::tr("Mistral AI Settings")), Column{mistralAiApiKey}},
|
Group{title(Tr::tr("Mistral AI Settings")), Column{mistralAiApiKey, codestralApiKey}},
|
||||||
Space{8},
|
Space{8},
|
||||||
Group{title(Tr::tr("Google AI Settings")), Column{googleAiApiKey}},
|
Group{title(Tr::tr("Google AI Settings")), Column{googleAiApiKey}},
|
||||||
Space{8},
|
Space{8},
|
||||||
|
@ -38,6 +38,7 @@ public:
|
|||||||
Utils::StringAspect claudeApiKey{this};
|
Utils::StringAspect claudeApiKey{this};
|
||||||
Utils::StringAspect openAiApiKey{this};
|
Utils::StringAspect openAiApiKey{this};
|
||||||
Utils::StringAspect mistralAiApiKey{this};
|
Utils::StringAspect mistralAiApiKey{this};
|
||||||
|
Utils::StringAspect codestralApiKey{this};
|
||||||
Utils::StringAspect googleAiApiKey{this};
|
Utils::StringAspect googleAiApiKey{this};
|
||||||
Utils::StringAspect ollamaBasicAuthApiKey{this};
|
Utils::StringAspect ollamaBasicAuthApiKey{this};
|
||||||
|
|
||||||
|
@ -101,6 +101,8 @@ const char OPEN_AI_API_KEY[] = "QodeAssist.openAiApiKey";
|
|||||||
const char OPEN_AI_API_KEY_HISTORY[] = "QodeAssist.openAiApiKeyHistory";
|
const char OPEN_AI_API_KEY_HISTORY[] = "QodeAssist.openAiApiKeyHistory";
|
||||||
const char MISTRAL_AI_API_KEY[] = "QodeAssist.mistralAiApiKey";
|
const char MISTRAL_AI_API_KEY[] = "QodeAssist.mistralAiApiKey";
|
||||||
const char MISTRAL_AI_API_KEY_HISTORY[] = "QodeAssist.mistralAiApiKeyHistory";
|
const char MISTRAL_AI_API_KEY_HISTORY[] = "QodeAssist.mistralAiApiKeyHistory";
|
||||||
|
const char CODESTRAL_API_KEY[] = "QodeAssist.codestralApiKey";
|
||||||
|
const char CODESTRAL_API_KEY_HISTORY[] = "QodeAssist.codestralApiKeyHistory";
|
||||||
const char GOOGLE_AI_API_KEY[] = "QodeAssist.googleAiApiKey";
|
const char GOOGLE_AI_API_KEY[] = "QodeAssist.googleAiApiKey";
|
||||||
const char GOOGLE_AI_API_KEY_HISTORY[] = "QodeAssist.googleAiApiKeyHistory";
|
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[] = "QodeAssist.ollamaBasicAuthApiKey";
|
||||||
|
Loading…
Reference in New Issue
Block a user