1m timeout for non stream request

This commit is contained in:
2023-11-01 15:41:49 +08:00
parent 5a78c61e5f
commit d9a42842b2
2 changed files with 44 additions and 7 deletions

View File

@@ -32,13 +32,7 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
return err
}
// set timeout, default is 5 second
timeout := 5 * time.Second
haveResponse := false
if upstream.Timeout > 0 {
// convert upstream.Timeout(second) to nanosecond
timeout = time.Duration(upstream.Timeout) * time.Second
}
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = nil
@@ -60,12 +54,23 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
// record chat message from user
record.Body = string(inBody)
requestBody, requestBodyOK := ParseRequestBody(inBody)
// set timeout, default is 5 second
timeout := 5 * time.Second
if upstream.Timeout > 0 {
// convert upstream.Timeout(second) to nanosecond
timeout = time.Duration(upstream.Timeout) * time.Second
}
if requestBodyOK == nil && !requestBody.Stream {
timeout = 60 * time.Second
}
// timeout out request
go func() {
time.Sleep(timeout)
if !haveResponse {
log.Println("Timeout", upstream.Endpoint)
log.Println("Timeout upstream", upstream.Endpoint)
errCtx = errors.New("timeout")
cancel()
}