fix: streaming timeout

This commit is contained in:
CalciumIon 2024-07-07 01:01:55 +08:00
parent 8a730cfe12
commit 1e536ee7d9

View File

@ -133,13 +133,19 @@ func OpenaiStreamHandler(c *gin.Context, resp *http.Response, info *relaycommon.
}()
service.SetEventStreamHeaders(c)
isFirst := true
ticker := time.NewTicker(time.Duration(constant.StreamingTimeout))
defer ticker.Stop()
c.Stream(func(w io.Writer) bool {
select {
case <-ticker.C:
common.LogError(c, "reading data from upstream timeout")
return false
case data := <-dataChan:
if isFirst {
isFirst = false
info.FirstResponseTime = time.Now()
}
ticker.Reset(time.Duration(constant.StreamingTimeout))
if strings.HasPrefix(data, "data: [DONE]") {
data = data[:12]
}