refactor: Remove validate request function

This commit is contained in:
Petr Mironychev
2026-04-01 01:24:46 +02:00
parent cd017ae1f2
commit 928519a636
24 changed files with 0 additions and 378 deletions

View File

@ -25,7 +25,6 @@
#include <LLMCore/ToolsManager.hpp>
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -136,26 +135,6 @@ QFuture<QList<QString>> ClaudeProvider::getInstalledModels(const QString &baseUr
return m_client->listModels();
}
QList<QString> ClaudeProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto templateReq = QJsonObject{
{"model", {}},
{"system", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"anthropic-version", {}},
{"top_p", {}},
{"top_k", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}},
{"thinking", QJsonObject{{"type", {}}, {"budget_tokens", {}}}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, templateReq);
}
QString ClaudeProvider::apiKey() const
{
return Settings::providerSettings().claudeApiKey();

View File

@ -43,7 +43,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -27,7 +27,6 @@
#include <QJsonObject>
#include <QtCore/qurlquery.h>
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -149,28 +148,6 @@ QFuture<QList<QString>> GoogleAIProvider::getInstalledModels(const QString &base
return m_client->listModels();
}
QList<QString> GoogleAIProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
QJsonObject templateReq;
templateReq = QJsonObject{
{"contents", QJsonArray{}},
{"system_instruction", QJsonArray{}},
{"generationConfig",
QJsonObject{
{"temperature", {}},
{"maxOutputTokens", {}},
{"topP", {}},
{"topK", {}},
{"thinkingConfig",
QJsonObject{{"thinkingBudget", {}}, {"includeThoughts", {}}}}}},
{"safetySettings", QJsonArray{}},
{"tools", QJsonArray{}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, templateReq);
}
QString GoogleAIProvider::apiKey() const
{
return Settings::providerSettings().googleAiApiKey();

View File

@ -43,7 +43,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -21,7 +21,6 @@
#include <LLMCore/ToolsManager.hpp>
#include "pluginllmcore/ValidationUtils.hpp"
#include "tools/ToolsRegistration.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
@ -70,25 +69,6 @@ QFuture<QList<QString>> LMStudioProvider::getInstalledModels(const QString &url)
return m_client->listModels();
}
QList<QString> LMStudioProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto templateReq = QJsonObject{
{"model", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"top_p", {}},
{"top_k", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, templateReq);
}
QString LMStudioProvider::apiKey() const
{
return {};

View File

@ -42,7 +42,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -20,7 +20,6 @@
#include "LlamaCppProvider.hpp"
#include <LLMCore/ToolsManager.hpp>
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -111,44 +110,6 @@ QFuture<QList<QString>> LlamaCppProvider::getInstalledModels(const QString &)
return QtFuture::makeReadyFuture(QList<QString>{});
}
QList<QString> LlamaCppProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
if (type == PluginLLMCore::TemplateType::FIM) {
const auto infillReq = QJsonObject{
{"model", {}},
{"input_prefix", {}},
{"input_suffix", {}},
{"input_extra", {}},
{"prompt", {}},
{"temperature", {}},
{"top_p", {}},
{"top_k", {}},
{"max_tokens", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, infillReq);
} else {
const auto chatReq = QJsonObject{
{"model", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"top_p", {}},
{"top_k", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, chatReq);
}
}
QString LlamaCppProvider::apiKey() const
{
return {};

View File

@ -43,7 +43,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -20,7 +20,6 @@
#include "MistralAIProvider.hpp"
#include <LLMCore/ToolsManager.hpp>
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -69,34 +68,6 @@ QFuture<QList<QString>> MistralAIProvider::getInstalledModels(const QString &url
return m_client->listModels();
}
QList<QString> MistralAIProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto fimReq = QJsonObject{
{"model", {}},
{"max_tokens", {}},
{"stream", {}},
{"temperature", {}},
{"prompt", {}},
{"suffix", {}}};
const auto templateReq = QJsonObject{
{"model", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"top_p", {}},
{"top_k", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(
request, type == PluginLLMCore::TemplateType::FIM ? fimReq : templateReq);
}
QString MistralAIProvider::apiKey() const
{
return Settings::providerSettings().mistralAiApiKey();

View File

@ -42,7 +42,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -25,7 +25,6 @@
#include <QJsonDocument>
#include <QJsonObject>
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -140,46 +139,6 @@ QFuture<QList<QString>> OllamaProvider::getInstalledModels(const QString &baseUr
return m_client->listModels();
}
QList<QString> OllamaProvider::validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto fimReq = QJsonObject{
{"keep_alive", {}},
{"model", {}},
{"stream", {}},
{"prompt", {}},
{"suffix", {}},
{"system", {}},
{"images", QJsonArray{}},
{"options",
QJsonObject{
{"temperature", {}},
{"stop", {}},
{"top_p", {}},
{"top_k", {}},
{"num_predict", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}}}}};
const auto messageReq = QJsonObject{
{"keep_alive", {}},
{"model", {}},
{"stream", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}, {"images", QJsonArray{}}}}}},
{"tools", QJsonArray{}},
{"options",
QJsonObject{
{"temperature", {}},
{"stop", {}},
{"top_p", {}},
{"top_k", {}},
{"num_predict", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}}}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(
request, type == PluginLLMCore::TemplateType::FIM ? fimReq : messageReq);
}
QString OllamaProvider::apiKey() const
{
return {};

View File

@ -43,7 +43,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -20,7 +20,6 @@
#include "OpenAICompatProvider.hpp"
#include <LLMCore/ToolsManager.hpp>
#include "pluginllmcore/ValidationUtils.hpp"
#include "tools/ToolsRegistration.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
@ -113,25 +112,6 @@ QFuture<QList<QString>> OpenAICompatProvider::getInstalledModels(const QString &
return QtFuture::makeReadyFuture(QList<QString>{});
}
QList<QString> OpenAICompatProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto templateReq = QJsonObject{
{"model", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"top_p", {}},
{"top_k", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, templateReq);
}
QString OpenAICompatProvider::apiKey() const
{
return Settings::providerSettings().openAiCompatApiKey();

View File

@ -42,7 +42,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -21,7 +21,6 @@
#include <LLMCore/ToolsManager.hpp>
#include "tools/ToolsRegistration.hpp"
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -143,25 +142,6 @@ QFuture<QList<QString>> OpenAIProvider::getInstalledModels(const QString &baseUr
});
}
QList<QString> OpenAIProvider::validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type)
{
const auto templateReq = QJsonObject{
{"model", {}},
{"messages", QJsonArray{{QJsonObject{{"role", {}}, {"content", {}}}}}},
{"temperature", {}},
{"max_tokens", {}},
{"max_completion_tokens", {}}, // New parameter for newer models
{"top_p", {}},
{"top_k", {}},
{"frequency_penalty", {}},
{"presence_penalty", {}},
{"stop", QJsonArray{}},
{"stream", {}},
{"tools", {}}};
return PluginLLMCore::ValidationUtils::validateRequestFields(request, templateReq);
}
QString OpenAIProvider::apiKey() const
{
return Settings::providerSettings().openAiApiKey();

View File

@ -42,7 +42,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;

View File

@ -21,7 +21,6 @@
#include <LLMCore/ToolsManager.hpp>
#include "tools/ToolsRegistration.hpp"
#include "pluginllmcore/ValidationUtils.hpp"
#include "logger/Logger.hpp"
#include "settings/ChatAssistantSettings.hpp"
#include "settings/CodeCompletionSettings.hpp"
@ -163,46 +162,6 @@ QFuture<QList<QString>> OpenAIResponsesProvider::getInstalledModels(const QStrin
});
}
QList<QString> OpenAIResponsesProvider::validateRequest(
const QJsonObject &request, PluginLLMCore::TemplateType type)
{
Q_UNUSED(type);
QList<QString> errors;
if (!request.contains("input")) {
errors.append("Missing required field: input");
return errors;
}
const QJsonValue inputValue = request["input"];
if (!inputValue.isString() && !inputValue.isArray()) {
errors.append("Field 'input' must be either a string or an array");
}
if (request.contains("max_output_tokens") && !request["max_output_tokens"].isDouble()) {
errors.append("Field 'max_output_tokens' must be a number");
}
if (request.contains("top_p") && !request["top_p"].isDouble()) {
errors.append("Field 'top_p' must be a number");
}
if (request.contains("reasoning") && !request["reasoning"].isObject()) {
errors.append("Field 'reasoning' must be an object");
}
if (request.contains("stream") && !request["stream"].isBool()) {
errors.append("Field 'stream' must be a boolean");
}
if (request.contains("tools") && !request["tools"].isArray()) {
errors.append("Field 'tools' must be an array");
}
return errors;
}
QString OpenAIResponsesProvider::apiKey() const
{
return Settings::providerSettings().openAiApiKey();

View File

@ -42,7 +42,6 @@ public:
bool isToolsEnabled,
bool isThinkingEnabled) override;
QFuture<QList<QString>> getInstalledModels(const QString &url) override;
QList<QString> validateRequest(const QJsonObject &request, PluginLLMCore::TemplateType type) override;
QString apiKey() const override;
void prepareNetworkRequest(QNetworkRequest &networkRequest) const override;
PluginLLMCore::ProviderID providerID() const override;