|
@@ -145,8 +145,10 @@ func OaiStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Re
|
|
|
common.SysError("error handling stream format: " + err.Error())
|
|
common.SysError("error handling stream format: " + err.Error())
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- lastStreamData = data
|
|
|
|
|
- streamItems = append(streamItems, data)
|
|
|
|
|
|
|
+ if len(data) > 0 {
|
|
|
|
|
+ lastStreamData = data
|
|
|
|
|
+ streamItems = append(streamItems, data)
|
|
|
|
|
+ }
|
|
|
return true
|
|
return true
|
|
|
})
|
|
})
|
|
|
|
|
|
|
@@ -154,16 +156,18 @@ func OaiStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Re
|
|
|
shouldSendLastResp := true
|
|
shouldSendLastResp := true
|
|
|
if err := handleLastResponse(lastStreamData, &responseId, &createAt, &systemFingerprint, &model, &usage,
|
|
if err := handleLastResponse(lastStreamData, &responseId, &createAt, &systemFingerprint, &model, &usage,
|
|
|
&containStreamUsage, info, &shouldSendLastResp); err != nil {
|
|
&containStreamUsage, info, &shouldSendLastResp); err != nil {
|
|
|
- common.SysError("error handling last response: " + err.Error())
|
|
|
|
|
|
|
+ common.LogError(c, fmt.Sprintf("error handling last response: %s, lastStreamData: [%s]", err.Error(), lastStreamData))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if shouldSendLastResp && info.RelayFormat == relaycommon.RelayFormatOpenAI {
|
|
|
|
|
- _ = sendStreamData(c, info, lastStreamData, forceFormat, thinkToContent)
|
|
|
|
|
|
|
+ if info.RelayFormat == relaycommon.RelayFormatOpenAI {
|
|
|
|
|
+ if shouldSendLastResp {
|
|
|
|
|
+ _ = sendStreamData(c, info, lastStreamData, forceFormat, thinkToContent)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 处理token计算
|
|
// 处理token计算
|
|
|
if err := processTokens(info.RelayMode, streamItems, &responseTextBuilder, &toolCount); err != nil {
|
|
if err := processTokens(info.RelayMode, streamItems, &responseTextBuilder, &toolCount); err != nil {
|
|
|
- common.SysError("error processing tokens: " + err.Error())
|
|
|
|
|
|
|
+ common.LogError(c, "error processing tokens: "+err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if !containStreamUsage {
|
|
if !containStreamUsage {
|
|
@@ -176,7 +180,6 @@ func OaiStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Re
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
handleFinalResponse(c, info, lastStreamData, responseId, createAt, model, systemFingerprint, usage, containStreamUsage)
|
|
handleFinalResponse(c, info, lastStreamData, responseId, createAt, model, systemFingerprint, usage, containStreamUsage)
|
|
|
|
|
|
|
|
return usage, nil
|
|
return usage, nil
|