Просмотр исходного кода

refactor: remove unnecessary call to helper.Done and adjust data rendering in ClaudeChunkData

CaIon 7 месяцев назад
Родитель
Сommit
419a056fbf
3 измененных файлов с 3 добавлено и 5 удалено
  1. 0 2
      relay/channel/openai/relay-openai.go
  2. 1 1
      relay/helper/common.go
  3. 2 2
      relay/helper/stream_scanner.go

+ 0 - 2
relay/channel/openai/relay-openai.go

@@ -724,8 +724,6 @@ func OaiResponsesStreamHandler(c *gin.Context, resp *http.Response, info *relayc
 		return true
 	})
 
-	helper.Done(c)
-
 	if usage.CompletionTokens == 0 {
 		// 计算输出文本的 token 数量
 		tempStr := responseTextBuilder.String()

+ 1 - 1
relay/helper/common.go

@@ -37,7 +37,7 @@ func ClaudeData(c *gin.Context, resp dto.ClaudeResponse) error {
 
 func ClaudeChunkData(c *gin.Context, resp dto.ClaudeResponse, data string) {
 	c.Render(-1, common.CustomEvent{Data: fmt.Sprintf("event: %s\n", resp.Type)})
-	c.Render(-1, common.CustomEvent{Data: fmt.Sprintf("data: %s\n", data)})
+	c.Render(-1, common.CustomEvent{Data: fmt.Sprintf("data: %s", data)})
 	if flusher, ok := c.Writer.(http.Flusher); ok {
 		flusher.Flush()
 	}

+ 2 - 2
relay/helper/stream_scanner.go

@@ -32,7 +32,7 @@ func StreamScannerHandler(c *gin.Context, resp *http.Response, info *relaycommon
 	defer resp.Body.Close()
 
 	streamingTimeout := time.Duration(constant.StreamingTimeout) * time.Second
-	if strings.HasPrefix(info.UpstreamModelName, "o1") || strings.HasPrefix(info.UpstreamModelName, "o3") {
+	if strings.HasPrefix(info.UpstreamModelName, "o") {
 		// twice timeout for thinking model
 		streamingTimeout *= 2
 	}
@@ -115,7 +115,7 @@ func StreamScannerHandler(c *gin.Context, resp *http.Response, info *relaycommon
 			}
 			data = data[5:]
 			data = strings.TrimLeft(data, " ")
-			data = strings.TrimSuffix(data, "\"")
+			data = strings.TrimSuffix(data, "\r")
 			if !strings.HasPrefix(data, "[DONE]") {
 				info.SetFirstResponseTime()
 				writeMutex.Lock() // Lock before writing