42 lines
1.1 KiB
C++
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
|