diff --git a/server/handler_admin_config.go b/server/handler_admin_config.go
index 286fadea..ae309c14 100644
--- a/server/handler_admin_config.go
+++ b/server/handler_admin_config.go
@@ -18,7 +18,8 @@ func (s *Server) TestHandle(c *gin.Context) {
}
-func (s *Server) ConfigGetHandle(c *gin.Context) {
+// GetAllConfigHandle 获取所有配置
+func (s *Server) GetAllConfigHandle(c *gin.Context) {
data := struct {
Title string `json:"title"`
ConsoleTitle string `json:"console_title"`
@@ -44,6 +45,22 @@ func (s *Server) ConfigGetHandle(c *gin.Context) {
c.JSON(http.StatusOK, types.BizVo{Code: types.Success, Data: data})
}
+func (s *Server) GetConfigHandle(c *gin.Context) {
+ data := struct {
+ Title string `json:"title"`
+ ConsoleTitle string `json:"console_title"`
+ WechatCard string `json:"wechat_card"` // 个人微信二维码
+ WechatGroup string `json:"wechat_group"` // 微信群二维码
+ }{
+ Title: s.Config.Title,
+ ConsoleTitle: s.Config.ConsoleTitle,
+ WechatCard: s.Config.ImgURL.WechatCard,
+ WechatGroup: s.Config.ImgURL.WechatGroup,
+ }
+
+ c.JSON(http.StatusOK, types.BizVo{Code: types.Success, Data: data})
+}
+
// ConfigSetHandle set configs
func (s *Server) ConfigSetHandle(c *gin.Context) {
var data struct {
diff --git a/server/server.go b/server/server.go
index b8aebe5e..61530884 100644
--- a/server/server.go
+++ b/server/server.go
@@ -95,7 +95,8 @@ func (s *Server) Run(webRoot embed.FS, path string, debug bool) {
engine.POST("api/img/get", s.GetImgURLHandle)
engine.POST("api/img/set", s.SetImgURLHandle)
- engine.GET("api/config/get", s.ConfigGetHandle)
+ engine.GET("api/config/get", s.GetConfigHandle) // 获取一些公开的配置信息,前端使用
+ engine.GET("api/admin/config/get", s.GetAllConfigHandle) // 获取所有配置,后台管理使用
engine.POST("api/admin/config/set", s.ConfigSetHandle)
engine.GET("api/chat-roles/list", s.GetChatRoleListHandle)
@@ -221,6 +222,7 @@ func AuthorizeMiddleware(s *Server) gin.HandlerFunc {
return func(c *gin.Context) {
if c.Request.URL.Path == "/api/login" ||
c.Request.URL.Path == "/api/admin/login" ||
+ c.Request.URL.Path == "/api/config/get" ||
c.Request.URL.Path == "/api/chat-roles/list" ||
!strings.HasPrefix(c.Request.URL.Path, "/api") {
c.Next()
diff --git a/web/src/views/Chat.vue b/web/src/views/Chat.vue
index 973c11cf..96986bce 100644
--- a/web/src/views/Chat.vue
+++ b/web/src/views/Chat.vue
@@ -116,7 +116,7 @@
-
+
@@ -153,6 +153,8 @@ export default defineComponent({
showConfigDialog: false,
userInfo: {},
showLoginDialog: false,
+ sysConfig: {}, // 系统配置
+ hasHelloMsg: {}, // 是否发送过打招呼信息
showStopGenerate: false,
showReGenerate: false,
@@ -198,6 +200,13 @@ export default defineComponent({
this.inputBoxWidth = window.innerWidth - 20;
});
+ // 获取系统配置
+ httpGet('/api/config/get').then((res) => {
+ this.sysConfig = res.data;
+ }).catch(() => {
+ ElMessage.error('获取系统配置失败')
+ })
+
this.connect();
},
@@ -220,7 +229,7 @@ export default defineComponent({
socket.addEventListener('open', () => {
// 获取聊天角色
if (this.chatRoles.length === 0) {
- httpGet("/api/config/chat-roles/get").then((res) => {
+ httpGet("/api/chat-roles/list").then((res) => {
// ElMessage.success('创建会话成功!');
this.chatRoles = res.data;
this.loading = false
@@ -246,6 +255,9 @@ export default defineComponent({
reader.readAsText(event.data, "UTF-8");
reader.onload = () => {
const data = JSON.parse(String(reader.result));
+ if (data['is_hello_msg'] && this.hasHelloMsg[this.role]) { // 一定发送过打招呼信息的
+ return
+ }
if (data.type === 'start') {
this.chatData.push({
type: "reply",
@@ -260,6 +272,8 @@ export default defineComponent({
this.sending = false;
if (data['is_hello_msg'] !== true) {
this.showReGenerate = true;
+ } else {
+ this.hasHelloMsg[this.role] = true
}
this.showStopGenerate = false;
this.lineBuffer = ''; // 清空缓冲
@@ -331,6 +345,9 @@ export default defineComponent({
this.loading = true
// 清空对话列表
this.chatData = [];
+ this.hasHelloMsg = {};
+ this.showStopGenerate = false;
+ this.showReGenerate = false;
this.connect();
for (const key in this.chatRoles) {
if (this.chatRoles[key].key === this.role) {
@@ -679,7 +696,7 @@ export default defineComponent({
.tip-text {
text-align left
- padding 0 20px 10px 20px;
+ padding 20px;
.el-alert {
padding 5px;
diff --git a/web/src/views/ChatFree.vue b/web/src/views/ChatFree.vue
index 40c6bfd5..05c7ed90 100644
--- a/web/src/views/ChatFree.vue
+++ b/web/src/views/ChatFree.vue
@@ -149,7 +149,7 @@
-
+
@@ -223,6 +223,9 @@ export default defineComponent({
curChat: null, // 当前会话
curPrompt: null, // 当前用户输入
+ sysConfig: {}, // 系统配置
+ hasHelloMsg: {}, // 是否发送过打招呼信息
+
showStopGenerate: false,
showReGenerate: false,
canReGenerate: false, // 是否可以重新生
@@ -280,6 +283,13 @@ export default defineComponent({
this.chatList = chatList;
}
+ // 获取系统配置
+ httpGet('/api/config/get').then((res) => {
+ this.sysConfig = res.data;
+ }).catch(() => {
+ ElMessage.error('获取系统配置失败')
+ })
+
// 创建新会话
this.newChat();
},
@@ -310,8 +320,10 @@ export default defineComponent({
// 获取历史记录
this.fetchChatHistory(this.curChat.id);
- if (this.chatData.length === 0) { // 显示打招呼信息
+ // 显示打招呼信息
+ if (!this.hasHelloMsg[this.curChat.id] && this.chatData.length === 0) {
this.chatData.push(this.helloMsg);
+ this.hasHelloMsg[this.curChat.id] = true
}
});
@@ -666,6 +678,7 @@ export default defineComponent({
this.appendChat();
this.chatData = [];
+ this.hasHelloMsg = {};
this.curChat = chat;
this.showStopGenerate = false;
this.showReGenerate = false;
diff --git a/web/src/views/ChatPlus.vue b/web/src/views/ChatPlus.vue
index d1666452..c6a501ae 100644
--- a/web/src/views/ChatPlus.vue
+++ b/web/src/views/ChatPlus.vue
@@ -163,7 +163,7 @@
-
+
@@ -222,7 +222,8 @@ export default defineComponent({
allChatRoles: [], // 所有角色集合
role: 'gpt',
inputValue: '', // 聊天内容
- sendHelloMsg: {}, // 是否发送过打招呼信息
+ hasHelloMsg: {}, // 是否发送过打招呼信息
+ sysConfig: {}, // 系统配置
showConfigDialog: false, // 显示配置对话框
userInfo: {},
@@ -272,6 +273,13 @@ export default defineComponent({
this.resizeElement();
});
+ // 获取系统配置
+ httpGet('/api/config/get').then((res) => {
+ this.sysConfig = res.data;
+ }).catch(() => {
+ ElMessage.error('获取系统配置失败')
+ })
+
this.connect();
},
@@ -327,7 +335,7 @@ export default defineComponent({
reader.readAsText(event.data, "UTF-8");
reader.onload = () => {
const data = JSON.parse(String(reader.result));
- if (data['is_hello_msg'] && this.sendHelloMsg[this.role]) { // 一定发送过打招呼信息的
+ if (data['is_hello_msg'] && this.hasHelloMsg[this.role]) { // 一定发送过打招呼信息的
return
}
@@ -346,7 +354,7 @@ export default defineComponent({
if (data['is_hello_msg'] !== true) {
this.showReGenerate = true;
} else {
- this.sendHelloMsg[this.role] = true
+ this.hasHelloMsg[this.role] = true
}
this.showStopGenerate = false;
this.lineBuffer = ''; // 清空缓冲
@@ -427,6 +435,7 @@ export default defineComponent({
this.replyIcon = item.icon;
// 清空对话列表
this.chatData = [];
+ this.hasHelloMsg = {};
this.showStopGenerate = false;
this.showReGenerate = false;
this.connect();
diff --git a/web/src/views/admin/SysConfig.vue b/web/src/views/admin/SysConfig.vue
index 63d383c2..8cb4b21b 100644
--- a/web/src/views/admin/SysConfig.vue
+++ b/web/src/views/admin/SysConfig.vue
@@ -139,7 +139,7 @@ export default defineComponent({
},
mounted() {
// 获取系统配置
- httpGet('/api/config/get').then((res) => {
+ httpGet('/api/admin/config/get').then((res) => {
this.form = res.data;
}).catch(() => {
ElMessage.error('获取系统配置失败')