gpt4all/gpt4all-chat/network.h

78 lines
2.3 KiB
C
Raw Normal View History

#ifndef NETWORK_H
#define NETWORK_H
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonValue>
struct KeyValue {
QString key;
QJsonValue value;
};
class Network : public QObject
{
Q_OBJECT
public:
static Network *globalInstance();
Q_INVOKABLE QString generateUniqueId() const;
2023-04-24 01:05:38 +00:00
Q_INVOKABLE bool sendConversation(const QString &ingestId, const QString &conversation);
Q_SIGNALS:
void healthCheckFailed(int code);
2023-04-27 02:05:56 +00:00
public Q_SLOTS:
2023-04-28 14:54:05 +00:00
void sendOptOut();
2023-04-27 02:05:56 +00:00
void sendModelLoaded();
void sendStartup();
2023-04-27 11:41:23 +00:00
void sendCheckForUpdates();
Q_INVOKABLE void sendModelDownloaderDialog();
Q_INVOKABLE void sendResetContext(int conversationLength);
void sendInstallModel(const QString &model);
2023-05-16 13:32:01 +00:00
void sendRemoveModel(const QString &model);
void sendDownloadStarted(const QString &model);
void sendDownloadCanceled(const QString &model);
void sendDownloadError(const QString &model, int code, const QString &errorString);
void sendDownloadFinished(const QString &model, bool success);
Q_INVOKABLE void sendSettingsDialog();
Q_INVOKABLE void sendNetworkToggled(bool active);
Q_INVOKABLE void sendNewChat(int count);
Q_INVOKABLE void sendRemoveChat();
Q_INVOKABLE void sendRenameChat();
Q_INVOKABLE void sendNonCompatHardware();
void sendChatStarted();
void sendRecalculatingContext(int conversationLength);
2023-04-27 02:05:56 +00:00
private Q_SLOTS:
2023-04-27 02:05:56 +00:00
void handleIpifyFinished();
void handleHealthFinished();
void handleJsonUploadFinished();
2023-04-24 21:52:19 +00:00
void handleSslErrors(QNetworkReply *reply, const QList<QSslError> &errors);
2023-04-27 02:05:56 +00:00
void handleMixpanelFinished();
void handleIsActiveChanged();
void handleUsageStatsActiveChanged();
private:
void sendHealth();
2023-04-27 02:05:56 +00:00
void sendIpify();
void sendMixpanelEvent(const QString &event, const QVector<KeyValue> &values = QVector<KeyValue>());
2023-04-29 15:05:44 +00:00
void sendMixpanel(const QByteArray &json, bool isOptOut = false);
2023-04-24 01:05:38 +00:00
bool packageAndSendJson(const QString &ingestId, const QString &json);
private:
2023-04-27 02:05:56 +00:00
bool m_shouldSendStartup;
QString m_ipify;
QString m_uniqueId;
QNetworkAccessManager m_networkManager;
QVector<QNetworkReply*> m_activeUploads;
private:
explicit Network();
~Network() {}
friend class MyNetwork;
};
#endif // LLM_H