From 69a1dccf5fc35d9fb2b499e2dd48571fdc646a0a Mon Sep 17 00:00:00 2001 From: Xiangyuan Liu Date: Tue, 28 Nov 2023 11:38:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dstream=20handler?= =?UTF-8?q?=E4=B8=AD=E5=9B=A0=E4=B8=BA=20c.Stream=20=E6=8F=90=E5=89=8D?= =?UTF-8?q?=E9=80=80=E5=87=BA=E5=AF=BC=E8=87=B4=20dataChan=20=E9=98=BB?= =?UTF-8?q?=E5=A1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/relay-openai.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/controller/relay-openai.go b/controller/relay-openai.go index 11cf84f0..d6f8c507 100644 --- a/controller/relay-openai.go +++ b/controller/relay-openai.go @@ -27,11 +27,15 @@ func openaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*O } return 0, nil, nil }) - dataChan := make(chan string) - stopChan := make(chan bool) + dataChan := make(chan string, 5) + stopChan := make(chan bool, 2) + defer close(stopChan) + defer close(dataChan) + var wg sync.WaitGroup go func() { wg.Add(1) + defer wg.Done() var streamItems []string for scanner.Scan() { data := scanner.Text() @@ -74,7 +78,6 @@ func openaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*O } } } - wg.Done() stopChan <- true }() setEventStreamHeaders(c)