From bd41f742d2c97c4579961d69fe879e8bc03eda3c Mon Sep 17 00:00:00 2001 From: RockYang Date: Wed, 29 Mar 2023 14:27:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1=E5=92=8C?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E6=98=9F=E7=90=83=E7=9A=84=E6=8E=A8=E5=B9=BF?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + server/chat_handler.go | 6 ++++-- server/config_handler.go | 16 +++++++++++++--- server/server.go | 5 +++-- web/public/images/start.png | Bin 0 -> 26607 bytes web/public/images/wx.png | Bin 0 -> 36326 bytes web/src/main.js | 2 +- web/src/views/Chat.vue | 35 ++++++++++++++++++++++++++--------- 8 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 web/public/images/start.png create mode 100644 web/public/images/wx.png diff --git a/README.md b/README.md index 355279cc..9a868e86 100644 --- a/README.md +++ b/README.md @@ -13,5 +13,6 @@ * [x] markdown 语法解析和代码高亮 * [ ] 用户配置界面,配置用户的使用习惯,可以让用户配置自己的 API KEY,调用自己的 API Key,将不记 Token 的使用次数 * [ ] 嵌入 AI 绘画功能,支持根据描述词生成图片 +* [x] 点卡用完之后,提示加入知识星球 * [ ] 增加 Buffer 层,将相同的问题答案缓存起来,相同问题直接返回答案。 diff --git a/server/chat_handler.go b/server/chat_handler.go index 4a43eba4..3d0bb061 100644 --- a/server/chat_handler.go +++ b/server/chat_handler.go @@ -17,7 +17,7 @@ import ( "time" ) -const ErrorMsg = "抱歉,AI 助手开小差了,我马上找人去盘它。" +const ErrorMsg = "抱歉,AI 助手开小差了,请马上联系管理员去盘它。" // ChatHandle 处理聊天 WebSocket 请求 func (s *Server) ChatHandle(c *gin.Context) { @@ -70,7 +70,8 @@ func (s *Server) sendMessage(session types.ChatSession, role types.ChatRole, pro } if user.MaxCalls > 0 && user.RemainingCalls <= 0 { - replyMessage(ws, "当前 user 点数已经用尽,请充值后再使用或者联系管理员!", false) + replyMessage(ws, "当前 TOKEN 点数已经用尽,加入我们的知识星球可以免费领取点卡!", false) + replyMessage(ws, "![](images/start.png)", true) return nil } var r = types.ApiRequest{ @@ -148,6 +149,7 @@ func (s *Server) sendMessage(session types.ChatSession, role types.ChatRole, pro // 如果三次请求都失败的话,则返回对应的错误信息 if err != nil { replyMessage(ws, ErrorMsg, false) + replyMessage(ws, "![](images/wx.png)", true) return err } diff --git a/server/config_handler.go b/server/config_handler.go index 11c62b45..f90efcfa 100644 --- a/server/config_handler.go +++ b/server/config_handler.go @@ -24,6 +24,10 @@ func (s *Server) ConfigSetHandle(c *gin.Context) { s.Config.Chat.Model = model } + if accessKey, ok := data["access_key"]; ok { + s.Config.AccessKey = accessKey + } + // Temperature if temperature, ok := data["temperature"]; ok { v, err := strconv.ParseFloat(temperature, 32) @@ -148,8 +152,9 @@ func (s *Server) AddUserHandle(c *gin.Context) { // BatchAddUserHandle 批量生成 Username func (s *Server) BatchAddUserHandle(c *gin.Context) { var data struct { - Number int `json:"number"` - MaxCalls int `json:"max_calls"` + Number int `json:"number"` + MaxCalls int `json:"max_calls"` + EnableHistory bool `json:"enable_history"` } err := json.NewDecoder(c.Request.Body).Decode(&data) if err != nil || data.MaxCalls <= 0 { @@ -164,7 +169,7 @@ func (s *Server) BatchAddUserHandle(c *gin.Context) { for err == nil { name = utils.RandString(12) } - err = PutUser(types.User{Name: name, MaxCalls: data.MaxCalls, RemainingCalls: data.MaxCalls}) + err = PutUser(types.User{Name: name, MaxCalls: data.MaxCalls, RemainingCalls: data.MaxCalls, EnableHistory: data.EnableHistory}) if err == nil { users = append(users, name) } @@ -226,6 +231,11 @@ func (s *Server) RemoveUserHandle(c *gin.Context) { return } + c.JSON(http.StatusOK, types.BizVo{Code: types.Success, Message: types.OkMsg}) +} + +// GetUserListHandle 获取用户列表 +func (s *Server) GetUserListHandle(c *gin.Context) { c.JSON(http.StatusOK, types.BizVo{Code: types.Success, Message: types.OkMsg, Data: GetUsers()}) } diff --git a/server/server.go b/server/server.go index cb024524..88a773ee 100644 --- a/server/server.go +++ b/server/server.go @@ -91,6 +91,7 @@ func (s *Server) Run(webRoot embed.FS, path string, debug bool) { engine.POST("api/config/user/add", s.AddUserHandle) engine.POST("api/config/user/batch-add", s.BatchAddUserHandle) engine.POST("api/config/user/set", s.SetUserHandle) + engine.POST("api/config/user/list", s.GetUserListHandle) engine.POST("api/config/user/remove", s.RemoveUserHandle) engine.POST("api/config/apikey/add", s.AddApiKeyHandle) engine.POST("api/config/apikey/remove", s.RemoveApiKeyHandle) @@ -173,7 +174,7 @@ func corsMiddleware() gin.HandlerFunc { c.Header("Access-Control-Allow-Origin", origin) c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") //允许跨域设置可以返回其他子段,可以自定义字段 - c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, Content-Type, ChatGPT-TOKEN") + c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, Content-Type, ChatGPT-TOKEN, ACCESS_KEY") // 允许浏览器(客户端)可以解析的头部 (重要) c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers") //设置缓存时间 @@ -209,7 +210,7 @@ func AuthorizeMiddleware(s *Server) gin.HandlerFunc { if strings.HasPrefix(c.Request.URL.Path, "/api/config") { accessKey := c.GetHeader("ACCESS_KEY") - if accessKey != s.Config.AccessKey { + if accessKey != strings.TrimSpace(s.Config.AccessKey) { c.Abort() c.JSON(http.StatusOK, types.BizVo{Code: types.NotAuthorized, Message: "No Permissions"}) } else { diff --git a/web/public/images/start.png b/web/public/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3ca23435966e46408b641c1b2b6fed9db558df GIT binary patch literal 26607 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 literal 0 HcmV?d00001 diff --git a/web/public/images/wx.png b/web/public/images/wx.png new file mode 100644 index 0000000000000000000000000000000000000000..2769591cab53d7c46bf65ada34e3e14331feb72d GIT binary patch literal 36326 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 V>SKHbx8nc+002ovPDHLkV1fZmuj&8* literal 0 HcmV?d00001 diff --git a/web/src/main.js b/web/src/main.js index e248bffc..8c2d1879 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -14,7 +14,7 @@ Global['Chat'] = Chat const routes = [ { name: 'home', path: '/', component: Chat, meta: { - title: 'WeChat-GPT' + title: 'ChatGPT-Plus' } }, { diff --git a/web/src/views/Chat.vue b/web/src/views/Chat.vue index 249b380f..2d35f862 100644 --- a/web/src/views/Chat.vue +++ b/web/src/views/Chat.vue @@ -20,6 +20,12 @@ + + + + + +
@@ -52,11 +58,6 @@
发送 - - - - -
@@ -84,6 +85,14 @@ 提交 + +

打开微信扫下面二维码免费领取口令

+
+ + + + +
@@ -191,7 +200,7 @@ export default defineComponent({ window.addEventListener("resize", () => { this.chatBoxHeight = window.innerHeight - this.toolBoxHeight; - this.inputBoxWidth = window.innerWidth - 20; + // this.inputBoxWidth = window.innerWidth - 20; }); this.connect(); @@ -314,6 +323,10 @@ export default defineComponent({ // 从后端获取聊天历史记录 fetchChatHistory: function () { httpPost("/api/chat/history", {role: this.role}).then((res) => { + if (this.chatData.length > 0) { // 如果已经有聊天记录了,就不追加了 + return + } + const data = res.data const md = require('markdown-it')(); for (let i = 0; i < data.length; i++) { @@ -477,7 +490,7 @@ export default defineComponent({ margin-right 5px; } - .clear-history { + .clear-history, .config { margin-left 5px; } } @@ -491,7 +504,7 @@ export default defineComponent({ padding: 0 10px 10px 10px; .chat-line { - padding 10px; + padding 10px 5px; font-size 14px; display: flex; align-items: flex-start; @@ -542,7 +555,7 @@ export default defineComponent({ .el-row { flex-wrap nowrap - width 106px; + //width 106px; align-items center } @@ -564,6 +577,10 @@ export default defineComponent({ width: 0; height: 0; } + + .row-center { + justify-content center + } } }