Skip to content

Commit 53f183c

Browse files
committed
wip: added ChatGPT settings
1 parent 9d741b4 commit 53f183c

File tree

3 files changed

+68
-29
lines changed

3 files changed

+68
-29
lines changed

frontend/src/views/preference/Preference.vue

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ const data = ref({
2323
nginx_log: {
2424
access_log_path: '',
2525
error_log_path: ''
26+
},
27+
openai: {
28+
model: '',
29+
base_url: '',
30+
proxy: '',
31+
token: ''
2632
}
2733
})
2834
@@ -47,6 +53,7 @@ function save() {
4753
<a-card :title="$gettext('Preference')">
4854
<div class="preference-container">
4955
<a-form layout="vertical">
56+
<h4>{{ $gettext('Basic') }}</h4>
5057
<a-form-item :label="$gettext('HTTP Port')">
5158
<p>{{ data.server.http_port }}</p>
5259
</a-form-item>
@@ -75,12 +82,37 @@ function save() {
7582
</a-select-option>
7683
</a-select>
7784
</a-form-item>
85+
<h4>{{ $gettext('Nginx Log') }}</h4>
7886
<a-form-item :label="$gettext('Nginx Access Log Path')">
7987
<a-input v-model:value="data.nginx_log.access_log_path"/>
8088
</a-form-item>
8189
<a-form-item :label="$gettext('Nginx Error Log Path')">
8290
<a-input v-model:value="data.nginx_log.error_log_path"/>
8391
</a-form-item>
92+
<h4>{{ $gettext('OpenAI') }}</h4>
93+
<a-form-item :label="$gettext('ChatGPT Model')">
94+
<a-select v-model:value="data.openai.model">
95+
<a-select-option value="gpt-4">
96+
{{ $gettext('GPT-4') }}
97+
</a-select-option>
98+
<a-select-option value="gpt-4-32k">
99+
{{ $gettext('GPT-4-32K') }}
100+
</a-select-option>
101+
<a-select-option value="gpt-3.5-turbo">
102+
{{ $gettext('GPT-3.5-Turbo') }}
103+
</a-select-option>
104+
</a-select>
105+
</a-form-item>
106+
<a-form-item :label="$gettext('API Base Url')">
107+
<a-input v-model:value="data.openai.base_url"
108+
:placeholder="$gettext('Leave blank for the default: https://api.openai.com/')"/>
109+
</a-form-item>
110+
<a-form-item :label="$gettext('API Proxy')">
111+
<a-input v-model:value="data.openai.proxy" placeholder="http://127.0.0.1:1087"/>
112+
</a-form-item>
113+
<a-form-item :label="$gettext('API Token')">
114+
<a-input-password v-model:value="data.openai.token"/>
115+
</a-form-item>
84116
</a-form>
85117
</div>
86118
</a-card>

server/api/openai.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func MakeChatCompletionRequest(c *gin.Context) {
7171
ctx := context.Background()
7272

7373
req := openai.ChatCompletionRequest{
74-
Model: openai.GPT3Dot5Turbo0301,
74+
Model: settings.OpenAISettings.Model,
7575
Messages: messages,
7676
Stream: true,
7777
}

server/api/settings.go

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,45 @@
11
package api
22

33
import (
4-
"github.com/0xJacky/Nginx-UI/server/settings"
5-
"github.com/gin-gonic/gin"
6-
"net/http"
4+
"github.com/0xJacky/Nginx-UI/server/settings"
5+
"github.com/gin-gonic/gin"
6+
"net/http"
77
)
88

99
func GetSettings(c *gin.Context) {
10-
c.JSON(http.StatusOK, gin.H{
11-
"server": settings.ServerSettings,
12-
"nginx_log": settings.NginxLogSettings,
13-
})
10+
c.JSON(http.StatusOK, gin.H{
11+
"server": settings.ServerSettings,
12+
"nginx_log": settings.NginxLogSettings,
13+
"openai": settings.OpenAISettings,
14+
})
1415
}
1516

1617
func SaveSettings(c *gin.Context) {
17-
var json struct {
18-
Server settings.Server `json:"server"`
19-
NginxLog settings.NginxLog `json:"nginx_log"`
20-
}
21-
22-
if !BindAndValid(c, &json) {
23-
return
24-
}
25-
26-
settings.Conf.Section("server").Key("Email").SetValue(json.Server.Email)
27-
settings.Conf.Section("server").Key("HTTPChallengePort").SetValue(json.Server.HTTPChallengePort)
28-
settings.Conf.Section("nginx_log").Key("AccessLogPath").SetValue(json.NginxLog.AccessLogPath)
29-
settings.Conf.Section("nginx_log").Key("ErrorLogPath").SetValue(json.NginxLog.ErrorLogPath)
30-
31-
err := settings.Save()
32-
if err != nil {
33-
ErrHandler(c, err)
34-
return
35-
}
36-
37-
GetSettings(c)
18+
var json struct {
19+
Server settings.Server `json:"server"`
20+
NginxLog settings.NginxLog `json:"nginx_log"`
21+
Openai settings.OpenAI `json:"openai"`
22+
}
23+
24+
if !BindAndValid(c, &json) {
25+
return
26+
}
27+
28+
settings.Conf.Section("server").Key("Email").SetValue(json.Server.Email)
29+
settings.Conf.Section("server").Key("HTTPChallengePort").SetValue(json.Server.HTTPChallengePort)
30+
settings.Conf.Section("nginx_log").Key("AccessLogPath").SetValue(json.NginxLog.AccessLogPath)
31+
settings.Conf.Section("nginx_log").Key("ErrorLogPath").SetValue(json.NginxLog.ErrorLogPath)
32+
33+
settings.Conf.Section("openai").Key("Model").SetValue(json.Openai.Model)
34+
settings.Conf.Section("openai").Key("BaseUrl").SetValue(json.Openai.BaseUrl)
35+
settings.Conf.Section("openai").Key("Proxy").SetValue(json.Openai.Proxy)
36+
settings.Conf.Section("openai").Key("Token").SetValue(json.Openai.Token)
37+
38+
err := settings.Save()
39+
if err != nil {
40+
ErrHandler(c, err)
41+
return
42+
}
43+
44+
GetSettings(c)
3845
}

0 commit comments

Comments
 (0)