feat: added api server port setting

This commit is contained in:
Daniel Alencar 2023-11-11 15:52:51 -03:00 committed by AT
parent 5c248dbec9
commit fe653d1489
4 changed files with 58 additions and 2 deletions

View File

@ -22,6 +22,7 @@ static int default_localDocsRetrievalSize = 3;
static bool default_localDocsShowReferences = true; static bool default_localDocsShowReferences = true;
static QString default_networkAttribution = ""; static QString default_networkAttribution = "";
static bool default_networkIsActive = false; static bool default_networkIsActive = false;
static int default_networkPort = 4891;
static bool default_networkUsageStatsActive = false; static bool default_networkUsageStatsActive = false;
static QString default_device = "Auto"; static QString default_device = "Auto";
@ -107,6 +108,7 @@ void MySettings::restoreApplicationDefaults()
setThreadCount(default_threadCount); setThreadCount(default_threadCount);
setSaveChatsContext(default_saveChatsContext); setSaveChatsContext(default_saveChatsContext);
setServerChat(default_serverChat); setServerChat(default_serverChat);
setNetworkPort(default_networkPort);
setModelPath(defaultLocalModelsPath()); setModelPath(defaultLocalModelsPath());
setUserDefaultModel(default_userDefaultModel); setUserDefaultModel(default_userDefaultModel);
setForceMetal(default_forceMetal); setForceMetal(default_forceMetal);
@ -678,6 +680,24 @@ void MySettings::setServerChat(bool b)
emit serverChatChanged(); emit serverChatChanged();
} }
int MySettings::networkPort() const
{
QSettings setting;
setting.sync();
return setting.value("networkPort", default_serverChat).toInt();
}
void MySettings::setNetworkPort(int c)
{
if (networkPort() == c)
return;
QSettings setting;
setting.setValue("networkPort", c);
setting.sync();
emit networkPortChanged();
}
QString MySettings::modelPath() const QString MySettings::modelPath() const
{ {
QSettings setting; QSettings setting;

View File

@ -28,6 +28,7 @@ class MySettings : public QObject
Q_PROPERTY(bool networkUsageStatsActive READ networkUsageStatsActive WRITE setNetworkUsageStatsActive NOTIFY networkUsageStatsActiveChanged) Q_PROPERTY(bool networkUsageStatsActive READ networkUsageStatsActive WRITE setNetworkUsageStatsActive NOTIFY networkUsageStatsActiveChanged)
Q_PROPERTY(QString device READ device WRITE setDevice NOTIFY deviceChanged) Q_PROPERTY(QString device READ device WRITE setDevice NOTIFY deviceChanged)
Q_PROPERTY(QVector<QString> deviceList READ deviceList NOTIFY deviceListChanged) Q_PROPERTY(QVector<QString> deviceList READ deviceList NOTIFY deviceListChanged)
Q_PROPERTY(int networkPort READ networkPort WRITE setNetworkPort NOTIFY networkPortChanged)
public: public:
static MySettings *globalInstance(); static MySettings *globalInstance();
@ -131,6 +132,8 @@ public:
void setNetworkIsActive(bool b); void setNetworkIsActive(bool b);
bool networkUsageStatsActive() const; bool networkUsageStatsActive() const;
void setNetworkUsageStatsActive(bool b); void setNetworkUsageStatsActive(bool b);
int networkPort() const;
void setNetworkPort(int c);
QVector<QString> deviceList() const; QVector<QString> deviceList() const;
void setDeviceList(const QVector<QString> &deviceList); void setDeviceList(const QVector<QString> &deviceList);
@ -164,6 +167,7 @@ Q_SIGNALS:
void localDocsShowReferencesChanged(); void localDocsShowReferencesChanged();
void networkAttributionChanged(); void networkAttributionChanged();
void networkIsActiveChanged(); void networkIsActiveChanged();
void networkPortChanged();
void networkUsageStatsActiveChanged(); void networkUsageStatsActiveChanged();
void attemptModelLoadChanged(); void attemptModelLoadChanged();
void deviceChanged(); void deviceChanged();

View File

@ -255,9 +255,41 @@ MySettingsTab {
ToolTip.text: qsTr("WARNING: This enables the gui to act as a local REST web server(OpenAI API compliant) for API requests and will increase your RAM usage as well") ToolTip.text: qsTr("WARNING: This enables the gui to act as a local REST web server(OpenAI API compliant) for API requests and will increase your RAM usage as well")
ToolTip.visible: hovered ToolTip.visible: hovered
} }
Rectangle { Label {
id: serverPortLabel
text: qsTr("Server Port (Requires restart):")
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
Layout.row: 9 Layout.row: 9
Layout.column: 0 Layout.column: 0
}
MyTextField {
text: MySettings.networkPort
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
ToolTip.text: qsTr("Api server port. WARNING: You need to restart the application for it to take effect")
ToolTip.visible: hovered
Layout.row: 9
Layout.column: 1
validator: IntValidator {
bottom: 1
}
onEditingFinished: {
var val = parseInt(text)
if (!isNaN(val)) {
MySettings.networkPort = val
focus = false
} else {
text = MySettings.networkPort
}
}
Accessible.role: Accessible.EditableText
Accessible.name: nServerPortLabel.text
Accessible.description: ToolTip.text
}
Rectangle {
Layout.row: 10
Layout.column: 0
Layout.columnSpan: 3 Layout.columnSpan: 3
Layout.fillWidth: true Layout.fillWidth: true
height: 3 height: 3

View File

@ -71,7 +71,7 @@ Server::~Server()
void Server::start() void Server::start()
{ {
m_server = new QHttpServer(this); m_server = new QHttpServer(this);
if (!m_server->listen(QHostAddress::LocalHost, 4891)) { if (!m_server->listen(QHostAddress::LocalHost, MySettings::globalInstance()->networkPort())) {
qWarning() << "ERROR: Unable to start the server"; qWarning() << "ERROR: Unable to start the server";
return; return;
} }