45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
|
|
#ifndef KIANICLIENT_H
|
|
#define KIANICLIENT_H
|
|
|
|
#include <QObject>
|
|
#include <QFuture>
|
|
#include "../Provider/KIProvider.h"
|
|
#include "../Message/KIThread.h"
|
|
#include "../Completion/KIChatOptions.h"
|
|
#include "../Embedding/KIEmbedding.h"
|
|
|
|
namespace KI {
|
|
|
|
class KIClient : public QObject
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(KIProvider* provider READ provider WRITE setProvider NOTIFY providerChanged)
|
|
Q_PROPERTY(QString defaultModel READ defaultModel WRITE setDefaultModel NOTIFY defaultModelChanged)
|
|
|
|
public:
|
|
explicit KIClient(QObject *parent = nullptr);
|
|
|
|
KIProvider* provider() const;
|
|
void setProvider(KIProvider* provider);
|
|
|
|
QString defaultModel() const;
|
|
void setDefaultModel(const QString& model);
|
|
|
|
Q_INVOKABLE QFuture<KIReply*> chat(const KIThread& thread, const KIChatOptions& opts);
|
|
Q_INVOKABLE QFuture<KIEmbeddingResult> embed(const QStringList& texts, const KIEmbedOptions& opts);
|
|
Q_INVOKABLE void cancel(quint64 requestId);
|
|
|
|
signals:
|
|
void providerChanged();
|
|
void defaultModelChanged();
|
|
|
|
private:
|
|
KIProvider* m_provider = nullptr;
|
|
QString m_defaultModel;
|
|
};
|
|
|
|
} // namespace KI
|
|
|
|
#endif // KIANICLIENT_H
|