mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-04-03 03:12:42 -04:00
refactor: Remove dead code
This commit is contained in:
@ -266,8 +266,6 @@ void ClientInterface::sendMessage(
|
|||||||
= {{"model", Settings::generalSettings().caModel()}, {"stream", true}};
|
= {{"model", Settings::generalSettings().caModel()}, {"stream", true}};
|
||||||
}
|
}
|
||||||
|
|
||||||
config.apiKey = provider->apiKey();
|
|
||||||
|
|
||||||
config.provider->prepareRequest(
|
config.provider->prepareRequest(
|
||||||
config.providerRequest,
|
config.providerRequest,
|
||||||
promptTemplate,
|
promptTemplate,
|
||||||
|
|||||||
@ -283,7 +283,6 @@ void LLMClientInterface::handleCompletion(const QJsonObject &request)
|
|||||||
QString("%1%2").arg(url, endpoint(provider, promptTemplate->type(), isPreset1Active)));
|
QString("%1%2").arg(url, endpoint(provider, promptTemplate->type(), isPreset1Active)));
|
||||||
config.providerRequest = {{"model", modelName}, {"stream", true}};
|
config.providerRequest = {{"model", modelName}, {"stream", true}};
|
||||||
}
|
}
|
||||||
config.apiKey = provider->apiKey();
|
|
||||||
config.multiLineCompletion = m_completeSettings.multiLineCompletion();
|
config.multiLineCompletion = m_completeSettings.multiLineCompletion();
|
||||||
|
|
||||||
const auto stopWords = QJsonArray::fromStringList(config.promptTemplate->stopWords());
|
const auto stopWords = QJsonArray::fromStringList(config.promptTemplate->stopWords());
|
||||||
|
|||||||
@ -146,7 +146,6 @@ void QuickRefactorHandler::prepareAndSendRequest(
|
|||||||
config.provider = provider;
|
config.provider = provider;
|
||||||
config.promptTemplate = promptTemplate;
|
config.promptTemplate = promptTemplate;
|
||||||
config.url = QString("%1%2").arg(settings.qrUrl(), provider->chatEndpoint());
|
config.url = QString("%1%2").arg(settings.qrUrl(), provider->chatEndpoint());
|
||||||
config.apiKey = provider->apiKey();
|
|
||||||
|
|
||||||
if (provider->providerID() == PluginLLMCore::ProviderID::GoogleAI) {
|
if (provider->providerID() == PluginLLMCore::ProviderID::GoogleAI) {
|
||||||
QString stream = QString{"streamGenerateContent?alt=sse"};
|
QString stream = QString{"streamGenerateContent?alt=sse"};
|
||||||
|
|||||||
@ -47,6 +47,13 @@ RequestID Provider::sendRequest(const QUrl &url, const QJsonObject &payload)
|
|||||||
return requestId;
|
return requestId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Provider::apiKey() const
|
||||||
|
{
|
||||||
|
if (m_apiKeyGetter)
|
||||||
|
return m_apiKeyGetter();
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
void Provider::cancelRequest(const RequestID &requestId)
|
void Provider::cancelRequest(const RequestID &requestId)
|
||||||
{
|
{
|
||||||
LOG_MESSAGE(QString("%1: Cancelling request %2").arg(name(), requestId));
|
LOG_MESSAGE(QString("%1: Cancelling request %2").arg(name(), requestId));
|
||||||
|
|||||||
@ -21,11 +21,12 @@
|
|||||||
|
|
||||||
#include <QFlags>
|
#include <QFlags>
|
||||||
#include <QFuture>
|
#include <QFuture>
|
||||||
#include <QNetworkRequest>
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <utils/environment.h>
|
#include <utils/environment.h>
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
#include "ContextData.hpp"
|
#include "ContextData.hpp"
|
||||||
#include "IToolsManager.hpp"
|
#include "IToolsManager.hpp"
|
||||||
#include "PromptTemplate.hpp"
|
#include "PromptTemplate.hpp"
|
||||||
@ -53,6 +54,8 @@ class Provider : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
using ApiKeyGetter = std::function<QString()>;
|
||||||
|
|
||||||
explicit Provider(QObject *parent = nullptr);
|
explicit Provider(QObject *parent = nullptr);
|
||||||
|
|
||||||
virtual ~Provider() = default;
|
virtual ~Provider() = default;
|
||||||
@ -70,16 +73,18 @@ public:
|
|||||||
bool isThinkingEnabled)
|
bool isThinkingEnabled)
|
||||||
= 0;
|
= 0;
|
||||||
virtual QFuture<QList<QString>> getInstalledModels(const QString &url) = 0;
|
virtual QFuture<QList<QString>> getInstalledModels(const QString &url) = 0;
|
||||||
virtual QString apiKey() const = 0;
|
|
||||||
virtual void prepareNetworkRequest(QNetworkRequest &networkRequest) const = 0;
|
|
||||||
virtual ProviderID providerID() const = 0;
|
virtual ProviderID providerID() const = 0;
|
||||||
virtual ProviderCapabilities capabilities() const { return {}; }
|
virtual ProviderCapabilities capabilities() const { return {}; }
|
||||||
|
|
||||||
virtual ::LLMCore::BaseClient *client() const = 0;
|
virtual ::LLMCore::BaseClient *client() const = 0;
|
||||||
|
|
||||||
|
QString apiKey() const;
|
||||||
RequestID sendRequest(const QUrl &url, const QJsonObject &payload);
|
RequestID sendRequest(const QUrl &url, const QJsonObject &payload);
|
||||||
void cancelRequest(const RequestID &requestId);
|
void cancelRequest(const RequestID &requestId);
|
||||||
::LLMCore::ToolsManager *toolsManager() const;
|
::LLMCore::ToolsManager *toolsManager() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
ApiKeyGetter m_apiKeyGetter;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QodeAssist::PluginLLMCore
|
} // namespace QodeAssist::PluginLLMCore
|
||||||
|
|||||||
@ -35,7 +35,6 @@ struct LLMConfig
|
|||||||
QJsonObject providerRequest;
|
QJsonObject providerRequest;
|
||||||
RequestType requestType;
|
RequestType requestType;
|
||||||
bool multiLineCompletion;
|
bool multiLineCompletion;
|
||||||
QString apiKey;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QodeAssist::PluginLLMCore
|
} // namespace QodeAssist::PluginLLMCore
|
||||||
|
|||||||
@ -37,9 +37,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
ClaudeProvider::ClaudeProvider(QObject *parent)
|
ClaudeProvider::ClaudeProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::ClaudeClient(
|
, m_client(new ::LLMCore::ClaudeClient(QString(), QString(), QString(), this))
|
||||||
url(), Settings::providerSettings().claudeApiKey(), QString(), this))
|
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().claudeApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,21 +135,6 @@ QFuture<QList<QString>> ClaudeProvider::getInstalledModels(const QString &baseUr
|
|||||||
return m_client->listModels();
|
return m_client->listModels();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ClaudeProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().claudeApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClaudeProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
networkRequest.setRawHeader("anthropic-version", "2023-06-01");
|
|
||||||
|
|
||||||
if (!apiKey().isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("x-api-key", apiKey().toUtf8());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID ClaudeProvider::providerID() const
|
PluginLLMCore::ProviderID ClaudeProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::Claude;
|
return PluginLLMCore::ProviderID::Claude;
|
||||||
|
|||||||
@ -43,8 +43,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,12 @@
|
|||||||
|
|
||||||
namespace QodeAssist::Providers {
|
namespace QodeAssist::Providers {
|
||||||
|
|
||||||
|
CodestralProvider::CodestralProvider(QObject *parent)
|
||||||
|
: MistralAIProvider(parent)
|
||||||
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().codestralApiKey(); };
|
||||||
|
}
|
||||||
|
|
||||||
QString CodestralProvider::name() const
|
QString CodestralProvider::name() const
|
||||||
{
|
{
|
||||||
return "Codestral";
|
return "Codestral";
|
||||||
@ -38,9 +44,4 @@ PluginLLMCore::ProviderCapabilities CodestralProvider::capabilities() const
|
|||||||
return PluginLLMCore::ProviderCapability::Tools | PluginLLMCore::ProviderCapability::Image;
|
return PluginLLMCore::ProviderCapability::Tools | PluginLLMCore::ProviderCapability::Image;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CodestralProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().codestralApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace QodeAssist::Providers
|
} // namespace QodeAssist::Providers
|
||||||
|
|||||||
@ -26,9 +26,10 @@ namespace QodeAssist::Providers {
|
|||||||
class CodestralProvider : public MistralAIProvider
|
class CodestralProvider : public MistralAIProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
explicit CodestralProvider(QObject *parent = nullptr);
|
||||||
|
|
||||||
QString name() const override;
|
QString name() const override;
|
||||||
QString url() const override;
|
QString url() const override;
|
||||||
QString apiKey() const override;
|
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -38,8 +38,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
GoogleAIProvider::GoogleAIProvider(QObject *parent)
|
GoogleAIProvider::GoogleAIProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::GoogleAIClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::GoogleAIClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().googleAiApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,22 +149,6 @@ QFuture<QList<QString>> GoogleAIProvider::getInstalledModels(const QString &base
|
|||||||
return m_client->listModels();
|
return m_client->listModels();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GoogleAIProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().googleAiApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void GoogleAIProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
|
|
||||||
QUrl url = networkRequest.url();
|
|
||||||
QUrlQuery query(url.query());
|
|
||||||
query.addQueryItem("key", apiKey());
|
|
||||||
url.setQuery(query);
|
|
||||||
networkRequest.setUrl(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID GoogleAIProvider::providerID() const
|
PluginLLMCore::ProviderID GoogleAIProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::GoogleAI;
|
return PluginLLMCore::ProviderID::GoogleAI;
|
||||||
|
|||||||
@ -43,8 +43,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
LMStudioProvider::LMStudioProvider(QObject *parent)
|
LMStudioProvider::LMStudioProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OpenAIClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OpenAIClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
@ -69,16 +69,6 @@ QFuture<QList<QString>> LMStudioProvider::getInstalledModels(const QString &url)
|
|||||||
return m_client->listModels();
|
return m_client->listModels();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LMStudioProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
void LMStudioProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID LMStudioProvider::providerID() const
|
PluginLLMCore::ProviderID LMStudioProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::LMStudio;
|
return PluginLLMCore::ProviderID::LMStudio;
|
||||||
|
|||||||
@ -42,8 +42,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
LlamaCppProvider::LlamaCppProvider(QObject *parent)
|
LlamaCppProvider::LlamaCppProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::LlamaCppClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::LlamaCppClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
@ -110,16 +110,6 @@ QFuture<QList<QString>> LlamaCppProvider::getInstalledModels(const QString &)
|
|||||||
return QtFuture::makeReadyFuture(QList<QString>{});
|
return QtFuture::makeReadyFuture(QList<QString>{});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LlamaCppProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
void LlamaCppProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID LlamaCppProvider::providerID() const
|
PluginLLMCore::ProviderID LlamaCppProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::LlamaCpp;
|
return PluginLLMCore::ProviderID::LlamaCpp;
|
||||||
|
|||||||
@ -43,8 +43,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -36,8 +36,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
MistralAIProvider::MistralAIProvider(QObject *parent)
|
MistralAIProvider::MistralAIProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OpenAIClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OpenAIClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().mistralAiApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,20 +69,6 @@ QFuture<QList<QString>> MistralAIProvider::getInstalledModels(const QString &url
|
|||||||
return m_client->listModels();
|
return m_client->listModels();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MistralAIProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().mistralAiApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MistralAIProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
|
|
||||||
if (!apiKey().isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey()).toUtf8());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID MistralAIProvider::providerID() const
|
PluginLLMCore::ProviderID MistralAIProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::MistralAI;
|
return PluginLLMCore::ProviderID::MistralAI;
|
||||||
|
|||||||
@ -42,8 +42,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -37,8 +37,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
OllamaProvider::OllamaProvider(QObject *parent)
|
OllamaProvider::OllamaProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OllamaClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OllamaClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().ollamaBasicAuthApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,20 +140,6 @@ QFuture<QList<QString>> OllamaProvider::getInstalledModels(const QString &baseUr
|
|||||||
return m_client->listModels();
|
return m_client->listModels();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OllamaProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
void OllamaProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
const auto key = Settings::providerSettings().ollamaBasicAuthApiKey();
|
|
||||||
if (!key.isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("Authorization", "Basic " + key.toLatin1());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID OllamaProvider::providerID() const
|
PluginLLMCore::ProviderID OllamaProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::Ollama;
|
return PluginLLMCore::ProviderID::Ollama;
|
||||||
|
|||||||
@ -43,8 +43,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -36,8 +36,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
OpenAICompatProvider::OpenAICompatProvider(QObject *parent)
|
OpenAICompatProvider::OpenAICompatProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OpenAIClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OpenAIClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().openAiCompatApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,20 +113,6 @@ QFuture<QList<QString>> OpenAICompatProvider::getInstalledModels(const QString &
|
|||||||
return QtFuture::makeReadyFuture(QList<QString>{});
|
return QtFuture::makeReadyFuture(QList<QString>{});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenAICompatProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().openAiCompatApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenAICompatProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
|
|
||||||
if (!apiKey().isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey()).toUtf8());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID OpenAICompatProvider::providerID() const
|
PluginLLMCore::ProviderID OpenAICompatProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::OpenAICompatible;
|
return PluginLLMCore::ProviderID::OpenAICompatible;
|
||||||
|
|||||||
@ -42,8 +42,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -36,8 +36,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
OpenAIProvider::OpenAIProvider(QObject *parent)
|
OpenAIProvider::OpenAIProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OpenAIClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OpenAIClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().openAiApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,20 +143,6 @@ QFuture<QList<QString>> OpenAIProvider::getInstalledModels(const QString &baseUr
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenAIProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().openAiApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenAIProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
|
|
||||||
if (!apiKey().isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey()).toUtf8());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID OpenAIProvider::providerID() const
|
PluginLLMCore::ProviderID OpenAIProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::OpenAI;
|
return PluginLLMCore::ProviderID::OpenAI;
|
||||||
|
|||||||
@ -42,8 +42,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -36,8 +36,9 @@ namespace QodeAssist::Providers {
|
|||||||
|
|
||||||
OpenAIResponsesProvider::OpenAIResponsesProvider(QObject *parent)
|
OpenAIResponsesProvider::OpenAIResponsesProvider(QObject *parent)
|
||||||
: PluginLLMCore::Provider(parent)
|
: PluginLLMCore::Provider(parent)
|
||||||
, m_client(new ::LLMCore::OpenAIResponsesClient(url(), apiKey(), QString(), this))
|
, m_client(new ::LLMCore::OpenAIResponsesClient(QString(), QString(), QString(), this))
|
||||||
{
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().openAiApiKey(); };
|
||||||
Tools::registerQodeAssistTools(m_client->tools());
|
Tools::registerQodeAssistTools(m_client->tools());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,20 +163,6 @@ QFuture<QList<QString>> OpenAIResponsesProvider::getInstalledModels(const QStrin
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenAIResponsesProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().openAiApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OpenAIResponsesProvider::prepareNetworkRequest(QNetworkRequest &networkRequest) const
|
|
||||||
{
|
|
||||||
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
|
||||||
|
|
||||||
if (!apiKey().isEmpty()) {
|
|
||||||
networkRequest.setRawHeader("Authorization", QString("Bearer %1").arg(apiKey()).toUtf8());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID OpenAIResponsesProvider::providerID() const
|
PluginLLMCore::ProviderID OpenAIResponsesProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::OpenAIResponses;
|
return PluginLLMCore::ProviderID::OpenAIResponses;
|
||||||
|
|||||||
@ -42,8 +42,6 @@ public:
|
|||||||
bool isToolsEnabled,
|
bool isToolsEnabled,
|
||||||
bool isThinkingEnabled) override;
|
bool isThinkingEnabled) override;
|
||||||
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
|
||||||
QString apiKey() const override;
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
PluginLLMCore::ProviderCapabilities capabilities() const override;
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,12 @@
|
|||||||
|
|
||||||
namespace QodeAssist::Providers {
|
namespace QodeAssist::Providers {
|
||||||
|
|
||||||
|
OpenRouterProvider::OpenRouterProvider(QObject *parent)
|
||||||
|
: OpenAICompatProvider(parent)
|
||||||
|
{
|
||||||
|
m_apiKeyGetter = [] { return Settings::providerSettings().openRouterApiKey(); };
|
||||||
|
}
|
||||||
|
|
||||||
QString OpenRouterProvider::name() const
|
QString OpenRouterProvider::name() const
|
||||||
{
|
{
|
||||||
return "OpenRouter";
|
return "OpenRouter";
|
||||||
@ -38,11 +44,6 @@ QString OpenRouterProvider::url() const
|
|||||||
return "https://openrouter.ai/api";
|
return "https://openrouter.ai/api";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString OpenRouterProvider::apiKey() const
|
|
||||||
{
|
|
||||||
return Settings::providerSettings().openRouterApiKey();
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginLLMCore::ProviderID OpenRouterProvider::providerID() const
|
PluginLLMCore::ProviderID OpenRouterProvider::providerID() const
|
||||||
{
|
{
|
||||||
return PluginLLMCore::ProviderID::OpenRouter;
|
return PluginLLMCore::ProviderID::OpenRouter;
|
||||||
|
|||||||
@ -26,9 +26,10 @@ namespace QodeAssist::Providers {
|
|||||||
class OpenRouterProvider : public OpenAICompatProvider
|
class OpenRouterProvider : public OpenAICompatProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
explicit OpenRouterProvider(QObject *parent = nullptr);
|
||||||
|
|
||||||
QString name() const override;
|
QString name() const override;
|
||||||
QString url() const override;
|
QString url() const override;
|
||||||
QString apiKey() const override;
|
|
||||||
PluginLLMCore::ProviderID providerID() const override;
|
PluginLLMCore::ProviderID providerID() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -83,8 +83,6 @@ public:
|
|||||||
return QtFuture::makeReadyFuture(QList<QString>{});
|
return QtFuture::makeReadyFuture(QList<QString>{});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString apiKey() const override { return "mock_api_key"; }
|
|
||||||
void prepareNetworkRequest(QNetworkRequest &request) const override {}
|
|
||||||
LLMCore::ProviderID providerID() const override { return LLMCore::ProviderID::OpenAI; }
|
LLMCore::ProviderID providerID() const override { return LLMCore::ProviderID::OpenAI; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user