metal-kompanion/src/kllm/KLLMInterface.h

44 lines
1.2 KiB
C++

#ifndef KLLMINTERFACE_H
#define KLLMINTERFACE_H
#include "KLLMOriginalInterface.h"
#include "KompanionAI/Client/KIClient.h"
#include "KompanionAI/Provider/OllamaProvider.h"
namespace KLLMCore {
class KLLMInterface : public KLLMOriginalInterface
{
Q_OBJECT
public:
explicit KLLMCompatInterface(QObject *parent = nullptr);
explicit KLLMCompatInterface(const QString &ollamaUrl, QObject *parent = nullptr);
explicit KLLMCompatInterface(const QUrl &ollamaUrl, QObject *parent = nullptr);
bool ready() const override;
bool hasError() const override;
QStringList models() const override;
KLLMReply *getCompletion(const KLLMRequest &request) override;
KLLMReply *getModelInfo(const KLLMRequest &request) override;
void reload() override;
QString ollamaUrl() const override;
void setOllamaUrl(const QString &ollamaUrl) override;
void setOllamaUrl(const QUrl &ollamaUrl) override;
QString systemPrompt() const override;
void setSystemPrompt(const QString &systemPrompt) override;
private:
KompanionAI::KIClient* m_kompanionClient;
KompanionAI::OllamaProvider* m_ollamaProvider;
};
} // namespace KLLMCore
#endif // KLLMCOMPAT_H