langchaingo
langchaingo copied to clipboard
接收消息影响整个应用退出
这代码导致程序退出。。。。
func parseStreamingChatResponse(ctx context.Context, r *http.Response, payload *ChatRequest) (*ChatCompletionResponse, error) { //nolint:cyclop,lll scanner := bufio.NewScanner(r.Body) responseChan := make(chan StreamedChatResponsePayload) go func() { defer close(responseChan) for scanner.Scan() { line := scanner.Text() if line == "" { continue } if !strings.HasPrefix(line, "data:") { log.Fatalf("unexpected line: %v", line) } data := strings.TrimPrefix(line, "data: ") if data == "[DONE]" { return } var streamPayload StreamedChatResponsePayload err := json.NewDecoder(bytes.NewReader([]byte(data))).Decode(&streamPayload) if err != nil { log.Fatalf("failed to decode stream payload: %v", err) } responseChan <- streamPayload } if err := scanner.Err(); err != nil { log.Println("issue scanning response:", err) } }() // Combine response return combineStreamingChatResponse(ctx, payload, responseChan) }
same as https://github.com/tmc/langchaingo/issues/822
github.com/tmc/[email protected]/llms/openai/internal/openaiclient/chat.go:379 if !strings.HasPrefix(line, "data:") { log.Fatalf("unexpected line: %v", line) }
func Fatalf(format string, v ...any) { std.Output(2, fmt.Sprintf(format, v...)) os.Exit(1) } 直接退出了整个应用程序。不能这么干
另外收到一个ping的样子。