dvc890 commited on
Commit
cac5718
·
1 Parent(s): 598c85b

Update api/common.go

Browse files
Files changed (1) hide show
  1. api/common.go +13 -4
api/common.go CHANGED
@@ -77,21 +77,20 @@ func HandleConversationResponse(c *gin.Context, resp *http.Response) (bool, stri
77
  ConversationID := ""
78
  oldpart := c.GetString("oldpart")
79
  part := ""
80
- logger.Info(fmt.Sprintf("oldpart的值: %s", oldpart))
81
 
82
  c.Writer.Header().Set("Content-Type", "text/event-stream; charset=utf-8")
83
 
84
  reader := bufio.NewReader(resp.Body)
85
  for {
86
  if c.Request.Context().Err() != nil {
87
- c.Writer.Write([]byte("data: " + "\n\n"))
88
  c.Writer.Flush()
89
  break
90
  }
91
 
92
  line, err := reader.ReadString('\n')
93
  if err != nil {
94
- c.Writer.Write([]byte("data: " + "\n\n"))
95
  c.Writer.Flush()
96
  break
97
  }
@@ -104,7 +103,7 @@ func HandleConversationResponse(c *gin.Context, resp *http.Response) (bool, stri
104
  continue
105
  }
106
 
107
- logger.Info(fmt.Sprintf("HandleConversationResponse: %s", line))
108
  if strings.HasPrefix(line, "[DONE]") {
109
  if Status {
110
  break
@@ -117,7 +116,12 @@ func HandleConversationResponse(c *gin.Context, resp *http.Response) (bool, stri
117
  content := message["content"].(map[string]interface{})
118
  parts := content["parts"].([]interface{})
119
  part = parts[0].(string)
 
120
  parts[0] = oldpart + part
 
 
 
 
121
  resultJSON, err2 := json.Marshal(result)
122
  if err2 == nil {
123
  line = "data: " + string(resultJSON)
@@ -155,6 +159,11 @@ func HandleConversationResponse(c *gin.Context, resp *http.Response) (bool, stri
155
  logger.Info(fmt.Sprintf("finish_details中type的值: %s", finishType))
156
  Status = true
157
  ConversationID = result["conversation_id"].(string)
 
 
 
 
 
158
  }
159
  }
160
  }
 
77
  ConversationID := ""
78
  oldpart := c.GetString("oldpart")
79
  part := ""
 
80
 
81
  c.Writer.Header().Set("Content-Type", "text/event-stream; charset=utf-8")
82
 
83
  reader := bufio.NewReader(resp.Body)
84
  for {
85
  if c.Request.Context().Err() != nil {
86
+ c.Writer.Write([]byte("data: [DONE]" + "\n\n"))
87
  c.Writer.Flush()
88
  break
89
  }
90
 
91
  line, err := reader.ReadString('\n')
92
  if err != nil {
93
+ c.Writer.Write([]byte("data: [DONE]" + "\n\n"))
94
  c.Writer.Flush()
95
  break
96
  }
 
103
  continue
104
  }
105
 
106
+ // logger.Info(fmt.Sprintf("HandleConversationResponse: %s", line))
107
  if strings.HasPrefix(line, "[DONE]") {
108
  if Status {
109
  break
 
116
  content := message["content"].(map[string]interface{})
117
  parts := content["parts"].([]interface{})
118
  part = parts[0].(string)
119
+
120
  parts[0] = oldpart + part
121
+ message["id"] = c.GetString("msg_id")
122
+ metadata := message["metadata"].(map[string]interface{})
123
+ metadata["message_type"] = "next"
124
+
125
  resultJSON, err2 := json.Marshal(result)
126
  if err2 == nil {
127
  line = "data: " + string(resultJSON)
 
159
  logger.Info(fmt.Sprintf("finish_details中type的值: %s", finishType))
160
  Status = true
161
  ConversationID = result["conversation_id"].(string)
162
+
163
+ if len(oldpart) == 0 {
164
+ msg_id := message["id"].(string)
165
+ c.Set("msg_id", msg_id)
166
+ }
167
  }
168
  }
169
  }