diff --git a/api/core/types/config.go b/api/core/types/config.go index bf1cc5e2..dd2c3484 100644 --- a/api/core/types/config.go +++ b/api/core/types/config.go @@ -156,7 +156,7 @@ const Azure = Platform("Azure") const ChatGLM = Platform("ChatGLM") const Baidu = Platform("Baidu") const XunFei = Platform("XunFei") -const Ali = Platform("Ali") +const QWen = Platform("QWen") // UserChatConfig 用户的聊天配置 type UserChatConfig struct { diff --git a/api/handler/chatimpl/chat_handler.go b/api/handler/chatimpl/chat_handler.go index 27dc8726..53dc543d 100644 --- a/api/handler/chatimpl/chat_handler.go +++ b/api/handler/chatimpl/chat_handler.go @@ -267,7 +267,7 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session *types.ChatSessio req.Temperature = h.App.ChatConfig.XunFei.Temperature req.MaxTokens = h.App.ChatConfig.XunFei.MaxTokens break - case types.Ali: + case types.QWen: req.Input = map[string]interface{}{"messages": []map[string]string{{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt}}} req.Parameters = map[string]interface{}{} break @@ -344,8 +344,8 @@ func (h *ChatHandler) sendMessage(ctx context.Context, session *types.ChatSessio return h.sendBaiduMessage(chatCtx, req, userVo, ctx, session, role, prompt, ws) case types.XunFei: return h.sendXunFeiMessage(chatCtx, req, userVo, ctx, session, role, prompt, ws) - case types.Ali: - return h.sendQwenMessage(chatCtx, req, userVo, ctx, session, role, prompt, ws) + case types.QWen: + return h.sendQWenMessage(chatCtx, req, userVo, ctx, session, role, prompt, ws) } utils.ReplyChunkMessage(ws, types.WsMessage{ Type: types.WsMiddle, @@ -439,7 +439,7 @@ func (h *ChatHandler) doRequest(ctx context.Context, req types.ApiRequest, platf case types.Baidu: apiURL = strings.Replace(apiKey.ApiURL, "{model}", req.Model, 1) break - case types.Ali: + case types.QWen: apiURL = apiKey.ApiURL req.Messages = nil break @@ -506,7 +506,7 @@ func (h *ChatHandler) doRequest(ctx context.Context, req types.ApiRequest, platf case types.OpenAI: request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", apiKey.Value)) break - case types.Ali: + case types.QWen: request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", apiKey.Value)) request.Header.Set("X-DashScope-SSE", "enable") break diff --git a/api/handler/chatimpl/qwen_handler.go b/api/handler/chatimpl/qwen_handler.go index 9a6fd505..0b3e148d 100644 --- a/api/handler/chatimpl/qwen_handler.go +++ b/api/handler/chatimpl/qwen_handler.go @@ -16,7 +16,7 @@ import ( "unicode/utf8" ) -type qwenResp struct { +type qWenResp struct { Output struct { FinishReason string `json:"finish_reason"` Text string `json:"text"` @@ -30,7 +30,7 @@ type qwenResp struct { } // 通义千问消息发送实现 -func (h *ChatHandler) sendQwenMessage( +func (h *ChatHandler) sendQWenMessage( chatCtx []interface{}, req types.ApiRequest, userVo vo.User, @@ -85,14 +85,15 @@ func (h *ChatHandler) sendQwenMessage( content = "\n" } - var resp qwenResp + var resp qWenResp err := utils.JsonDecode(content, &resp) if err != nil { logger.Error("error with parse data line: ", err) utils.ReplyMessage(ws, fmt.Sprintf("**解析数据行失败:%s**", err)) break } - if len(contents) == 0 { + + if len(contents) == 0 { // 发送消息头 utils.ReplyChunkMessage(ws, types.WsMessage{Type: types.WsStart}) } @@ -101,12 +102,12 @@ func (h *ChatHandler) sendQwenMessage( //每次循环结束后,lastText 会更新为当前的完整文本,以便于下一次循环进行比较。 currentText := resp.Output.Text if currentText != lastText { - // 找出新增的文本部分并发送 + // 提取新增文本 newText = strings.Replace(currentText, lastText, "", 1) utils.ReplyChunkMessage(ws, types.WsMessage{ Type: types.WsMiddle, Content: utils.InterfaceToString(newText), - }) // 发送新增的文本部分到客户端 + }) lastText = currentText // 更新 lastText } contents = append(contents, newText) diff --git a/web/src/views/admin/ApiKey.vue b/web/src/views/admin/ApiKey.vue index 5f44bd53..26f30599 100644 --- a/web/src/views/admin/ApiKey.vue +++ b/web/src/views/admin/ApiKey.vue @@ -177,7 +177,7 @@ const platforms = ref([ }, { name: "【阿里】千义通问", - value: "Qwen", + value: "QWen", api_url: "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" }, ]) diff --git a/web/src/views/admin/ChatModel.vue b/web/src/views/admin/ChatModel.vue index 5b3b7d79..d0fff12d 100644 --- a/web/src/views/admin/ChatModel.vue +++ b/web/src/views/admin/ChatModel.vue @@ -134,7 +134,7 @@ const platforms = ref([ {name: "【清华智普】ChatGLM", value: "ChatGLM"}, {name: "【百度】文心一言", value: "Baidu"}, {name: "【微软】Azure", value: "Azure"}, - {name: "【阿里】通义千问", value: "Ali"}, + {name: "【阿里】通义千问", value: "QWen"}, ])