ant-design / pro-chat

🤖 Components Library for Quickly Building LLM Chat Interfaces.
https://pro-chat.antdigital.dev
MIT License
710 stars 90 forks source link

🐛[BUG] 非Stream模式返回JSON数据,抛异常 Error: Response error: No response body #165

Closed liguobao closed 6 months ago

liguobao commented 6 months ago

🐛 bug 描述

正常一次性返回数据 Response JSON,下面这一段逻辑会崩掉。

const stream = OpenAIStream(response); return new StreamingTextResponse(stream);

📷 复现步骤

          let messageRep = {
            model: currentRow.model,
            messages: [...messages] as any,
            // stream: true
          }
         const response: any = await openai.chat.completions.create(messageRep)
              .catch((errorRsp: any) => {
                console.log("errorRsp", errorRsp);
                Modal.error({
                  title: 'Alert Message',
                  content: errorRsp.error
                });
                return errorRsp.error;
              });
            if (typeof response === "string") {
              return new Response(`Something went wrong, error msg: ${response}`);
            }
            const stream = OpenAIStream(response);
            return new StreamingTextResponse(stream);

🏞 期望结果

老版本的我记得是可以的,当前版本会直接崩掉。

ONLY-yours commented 6 months ago

来点具体报错看看?我们没有咋改动这里的部分

liguobao commented 6 months ago

来点具体报错看看?我们没有咋改动这里的部分

用Chat demo,把 // stream: true 注释了就能复现了。 错误信息就是 Error: Response error: No response body

ONLY-yours commented 6 months ago

@liguobao 这就是默认的处理,如果你不是流式输出,不要用 OpenAIStream 这个包裹,直接返回一个

new Response 包裹你这个 string 就好了