Closed
Description
How do I terminate the stream for loop,How do I trigger stream.close() manually?
func (g *GPT) ChatCompletionStream() {
var err error
if Stream == false {
panic("ChatCompletionStream should be set stream")
}
g.ChatCompStream, err = g.Client.CreateChatCompletionStream(g.App.Ctx, g.ChatCompletionRequest)
if err != nil {
return
}
defer g.ChatCompStream.Close()
for {
select {
default:
response, err := g.ChatCompStream.Recv()
if errors.Is(err, io.EOF) {
g.App.WsPushChan <- service.PushResp{
Code: 1,
Data: "Chatcat Finished",
}
return
}
if err != nil {
g.App.WsPushChan <- service.PushResp{
Code: -1,
Data: fmt.Sprintf("Chatcat Warm Reminder: %s", err.Error()),
}
return
}
g.App.WsPushChan <- service.PushResp{
Code: 0,
Data: response.Choices[0].Delta.Content,
}
}
}
}