metal-kompanion/src/KI/Provider/OllamaProvider.h

42 lines
1.1 KiB
C++

#ifndef OLLAMAPROVIDER_H
#define OLLAMAPROVIDER_H
#include <QNetworkAccessManager>
#include "KIProvider.h"
#include "../Completion/KIChatOptions.h" // Included full definition
#include "../Embedding/KIEmbedding.h" // Included full definition for KIEmbedOptions and KIEmbeddingResult
#include "../Completion/KIReply.h" // Included full definition for KIReply (needed for QFuture<KIReply*>)
#include "../Message/KIThread.h" // Included full definition for KIThread
#include "KICapabilities.h"
namespace KI {
class OllamaProvider : public KIProvider
{
Q_OBJECT
public:
explicit OllamaProvider(QObject *parent = nullptr);
QString name() const override;
QStringList models() const override;
KICapabilities* caps() const override;
QFuture<KIReply*> chat(const KIThread& thread, const KIChatOptions& opts) override;
QFuture<KIEmbeddingResult> embed(const QStringList& texts, const KIEmbedOptions& opts) override;
void cancel(quint64 requestId) override;
public slots:
void reload();
private:
QNetworkAccessManager* m_manager;
QStringList m_models;
KICapabilities* m_caps;
};
} // namespace KI
#endif // OLLAMAPROVIDER_H