#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