gpt4all/gpt4all-chat/localdocs.h

60 lines
1.8 KiB
C
Raw Normal View History

2023-05-18 22:59:10 +00:00
#ifndef LOCALDOCS_H
#define LOCALDOCS_H
#include "localdocsmodel.h"
#include "database.h"
2023-05-18 22:59:10 +00:00
#include <QObject>
2023-05-18 22:59:10 +00:00
class LocalDocs : public QObject
{
Q_OBJECT
Q_PROPERTY(LocalDocsModel *localDocsModel READ localDocsModel NOTIFY localDocsModelChanged)
2023-05-24 00:26:31 +00:00
Q_PROPERTY(int chunkSize READ chunkSize WRITE setChunkSize NOTIFY chunkSizeChanged)
Q_PROPERTY(int retrievalSize READ retrievalSize WRITE setRetrievalSize NOTIFY retrievalSizeChanged)
2023-05-18 22:59:10 +00:00
public:
static LocalDocs *globalInstance();
LocalDocsModel *localDocsModel() const { return m_localDocsModel; }
2023-05-21 19:13:28 +00:00
Q_INVOKABLE void addFolder(const QString &collection, const QString &path);
Q_INVOKABLE void removeFolder(const QString &collection, const QString &path);
2023-05-18 22:59:10 +00:00
QList<QString> result() const { return m_retrieveResult; }
void requestRetrieve(const QList<QString> &collections, const QString &text);
2023-05-24 00:26:31 +00:00
int chunkSize() const;
void setChunkSize(int chunkSize);
int retrievalSize() const;
void setRetrievalSize(int retrievalSize);
2023-05-18 22:59:10 +00:00
Q_SIGNALS:
void requestAddFolder(const QString &collection, const QString &path);
void requestRemoveFolder(const QString &collection, const QString &path);
2023-05-24 00:26:31 +00:00
void requestRetrieveFromDB(const QList<QString> &collections, const QString &text, int N);
void requestChunkSizeChange(int chunkSize);
2023-05-18 22:59:10 +00:00
void receivedResult();
void localDocsModelChanged();
2023-05-24 00:26:31 +00:00
void chunkSizeChanged();
void retrievalSizeChanged();
2023-05-18 22:59:10 +00:00
private Q_SLOTS:
2023-05-21 19:13:28 +00:00
void handleRetrieveResult(const QList<QString> &result);
2023-05-18 22:59:10 +00:00
private:
2023-05-24 00:26:31 +00:00
int m_chunkSize;
int m_retrievalSize;
LocalDocsModel *m_localDocsModel;
2023-05-18 22:59:10 +00:00
Database *m_database;
QList<QString> m_retrieveResult;
private:
explicit LocalDocs();
~LocalDocs() {}
friend class MyLocalDocs;
};
#endif // LOCALDOCS_H