Spaces:
Runtime error
Runtime error
Update api/common.go
Browse files- 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 |
}
|