diff --git a/api/handler/chatimpl/openai_handler.go b/api/handler/chatimpl/openai_handler.go index 6e826159..c4a29338 100644 --- a/api/handler/chatimpl/openai_handler.go +++ b/api/handler/chatimpl/openai_handler.go @@ -65,6 +65,7 @@ func (h *ChatHandler) sendOpenAiMessage( var toolCall = false var arguments = make([]string, 0) scanner := bufio.NewScanner(response.Body) + var isNew = true for scanner.Scan() { line := scanner.Text() if !strings.Contains(line, "data:") || len(line) < 30 { @@ -117,13 +118,16 @@ func (h *ChatHandler) sendOpenAiMessage( // 初始化 role if responseBody.Choices[0].Delta.Role != "" && message.Role == "" { message.Role = responseBody.Choices[0].Delta.Role - utils.ReplyChunkMessage(ws, types.WsMessage{Type: types.WsStart}) continue } else if responseBody.Choices[0].FinishReason != "" { break // 输出完成或者输出中断了 } else { content := responseBody.Choices[0].Delta.Content contents = append(contents, utils.InterfaceToString(content)) + if isNew { + utils.ReplyChunkMessage(ws, types.WsMessage{Type: types.WsStart}) + isNew = false + } utils.ReplyChunkMessage(ws, types.WsMessage{ Type: types.WsMiddle, Content: utils.InterfaceToString(responseBody.Choices[0].Delta.Content), diff --git a/deploy/docker-compose.yaml b/deploy/docker-compose.yaml index 89510640..a21e01e7 100644 --- a/deploy/docker-compose.yaml +++ b/deploy/docker-compose.yaml @@ -53,7 +53,7 @@ services: # 后端 API 程序 chatgpt-plus-api: - image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-api:v4.0.2-amd64 + image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-api:v4.0.3-amd64 container_name: chatgpt-plus-api restart: always depends_on: @@ -76,7 +76,7 @@ services: # 前端应用 chatgpt-plus-web: - image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-web:v4.0.2-amd64 + image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-web:v4.0.3-amd64 container_name: chatgpt-plus-web restart: always depends_on: