feat: added api server port setting

pull/2099/head
Daniel Alencar 7 months ago committed by AT
parent 5c248dbec9
commit fe653d1489

@ -22,6 +22,7 @@ static int default_localDocsRetrievalSize = 3;
static bool default_localDocsShowReferences = true;
static QString default_networkAttribution = "";
static bool default_networkIsActive = false;
static int default_networkPort = 4891;
static bool default_networkUsageStatsActive = false;
static QString default_device = "Auto";
@ -107,6 +108,7 @@ void MySettings::restoreApplicationDefaults()
setThreadCount(default_threadCount);
setSaveChatsContext(default_saveChatsContext);
setServerChat(default_serverChat);
setNetworkPort(default_networkPort);
setModelPath(defaultLocalModelsPath());
setUserDefaultModel(default_userDefaultModel);
setForceMetal(default_forceMetal);
@ -678,6 +680,24 @@ void MySettings::setServerChat(bool b)
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
{
QSettings setting;

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

@ -254,9 +254,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.visible: hovered
}
Label {
id: serverPortLabel
text: qsTr("Server Port (Requires restart):")
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
Layout.row: 9
Layout.column: 0
}
Rectangle {
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.fillWidth: true

@ -71,7 +71,7 @@ Server::~Server()
void Server::start()
{
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";
return;
}

Loading…
Cancel
Save