refactor: Adapt provider to clients API

This commit is contained in:
Petr Mironychev
2026-03-30 08:08:49 +02:00
parent e55e96714b
commit 545b8ed000
21 changed files with 697 additions and 2958 deletions

View File

@ -1,36 +1,9 @@
#include "Provider.hpp"
#include <QJsonDocument>
namespace QodeAssist::PluginLLMCore {
Provider::Provider(QObject *parent)
: QObject(parent)
, m_httpClient(new HttpClient(this))
{
connect(m_httpClient, &HttpClient::dataReceived, this, &Provider::onDataReceived);
connect(m_httpClient, &HttpClient::requestFinished, this, &Provider::onRequestFinished);
}
void Provider::cancelRequest(const RequestID &requestId)
{
m_httpClient->cancelRequest(requestId);
}
HttpClient *Provider::httpClient() const
{
return m_httpClient;
}
QJsonObject Provider::parseEventLine(const QString &line)
{
if (!line.startsWith("data: "))
return QJsonObject();
QString jsonStr = line.mid(6);
QJsonDocument doc = QJsonDocument::fromJson(jsonStr.toUtf8());
return doc.object();
}
{}
} // namespace QodeAssist::PluginLLMCore

View File

@ -19,8 +19,6 @@
#pragma once
#include <optional>
#include <QFuture>
#include <utils/environment.h>
#include <QNetworkRequest>
@ -28,8 +26,6 @@
#include <QString>
#include "ContextData.hpp"
#include "DataBuffers.hpp"
#include "HttpClient.hpp"
#include "IToolsManager.hpp"
#include "PromptTemplate.hpp"
#include "RequestType.hpp"
@ -38,7 +34,6 @@ namespace LLMCore {
class ToolsManager;
}
class QNetworkReply;
class QJsonObject;
namespace QodeAssist::PluginLLMCore {
@ -77,20 +72,10 @@ public:
virtual bool supportThinking() const { return false; };
virtual bool supportImage() const { return false; };
virtual void cancelRequest(const RequestID &requestId);
virtual void cancelRequest(const RequestID &requestId) = 0;
virtual ::LLMCore::ToolsManager *toolsManager() const { return nullptr; }
HttpClient *httpClient() const;
public slots:
virtual void onDataReceived(
const QodeAssist::PluginLLMCore::RequestID &requestId, const QByteArray &data)
= 0;
virtual void onRequestFinished(
const QodeAssist::PluginLLMCore::RequestID &requestId, std::optional<QString> error)
= 0;
signals:
void partialResponseReceived(
const QodeAssist::PluginLLMCore::RequestID &requestId, const QString &partialText);
@ -109,14 +94,6 @@ signals:
const QString &requestId, const QString &thinking, const QString &signature);
void redactedThinkingBlockReceived(const QString &requestId, const QString &signature);
protected:
QJsonObject parseEventLine(const QString &line);
QHash<RequestID, DataBuffers> m_dataBuffers;
QHash<RequestID, QUrl> m_requestUrls;
private:
HttpClient *m_httpClient;
};
} // namespace QodeAssist::PluginLLMCore