2023-05-11 16:46:25 -04:00
|
|
|
#ifndef SERVER_H
|
|
|
|
#define SERVER_H
|
|
|
|
|
|
|
|
#include "chatllm.h"
|
2024-06-04 14:47:11 -04:00
|
|
|
#include "database.h"
|
2023-05-11 16:46:25 -04:00
|
|
|
|
2024-06-06 11:59:28 -04:00
|
|
|
#include <QHttpServerRequest>
|
2024-06-04 14:47:11 -04:00
|
|
|
#include <QHttpServerResponse>
|
2023-05-11 16:46:25 -04:00
|
|
|
#include <QObject>
|
2024-06-04 14:47:11 -04:00
|
|
|
#include <QList>
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
class Chat;
|
|
|
|
class QHttpServer;
|
2023-05-11 16:46:25 -04:00
|
|
|
|
|
|
|
class Server : public ChatLLM
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
Server(Chat *parent);
|
|
|
|
virtual ~Server();
|
|
|
|
|
|
|
|
public Q_SLOTS:
|
|
|
|
void start();
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
void requestServerNewPromptResponsePair(const QString &prompt);
|
|
|
|
|
|
|
|
private Q_SLOTS:
|
|
|
|
QHttpServerResponse handleCompletionRequest(const QHttpServerRequest &request, bool isChat);
|
2023-06-19 18:23:54 -04:00
|
|
|
void handleDatabaseResultsChanged(const QList<ResultInfo> &results) { m_databaseResults = results; }
|
2023-06-19 19:51:28 -04:00
|
|
|
void handleCollectionListChanged(const QList<QString> &collectionList) { m_collections = collectionList; }
|
2023-05-11 16:46:25 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
Chat *m_chat;
|
|
|
|
QHttpServer *m_server;
|
2023-06-19 18:23:54 -04:00
|
|
|
QList<ResultInfo> m_databaseResults;
|
2023-06-19 19:51:28 -04:00
|
|
|
QList<QString> m_collections;
|
2023-05-11 16:46:25 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // SERVER_H
|