Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

流式返回前端不起作用,阻塞住了,等后端接受完所有流式数据,前端才会开始接收sse事件消息 #36

Open
1584898862 opened this issue Feb 12, 2025 · 11 comments

Comments

@1584898862
Copy link

Image

@LnYo-Cly
Copy link
Owner

前端是否使用了nginx,如果使用了需要关闭缓存相关的配置。
后端可以尝试加入下面的代码:

SseListener sseListener = new SseListener() {
    @Override
    protected void send() {

       // ......

        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

       // ......
    }
};

@MaLoneGitHub
Copy link

前端是否使用了nginx,如果使用了需要关闭缓存相关的配置。 后端可以尝试加入下面的代码:

SseListener sseListener = new SseListener() {
@OverRide
protected void send() {

   // ......

    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }

   // ......
}

};
同样的问题,后端打印的日志,也是接收完毕之后,一次打印出来的。

@Krysalbaba
Copy link

Image
大佬,麻烦问下日志上先显示了接口响应时间,之后才流式输出了响应信息,感觉好像是等待接口请求完成后,才依次打印出来的

@ZaneBloodHoof
Copy link

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回

Image

@LnYo-Cly
Copy link
Owner

Image 大佬,麻烦问下日志上先显示了接口响应时间,之后才流式输出了响应信息,感觉好像是等待接口请求完成后,才依次打印出来的

上面那个响应时间,是响应头到达的时间。响应头到达后面才是返回的响应体。

@LnYo-Cly
Copy link
Owner

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回

Image

请问是后端无法逐字打印吗?

Image
上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。

Image
这是我使用其它的SDK测试的截图,二者效果都是相同的。

@Krysalbaba
Copy link

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回
Image

请问是后端无法逐字打印吗?

Image 上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。

Image 这是我使用其它的SDK测试的截图,二者效果都是相同的。

是逐字打印,但是后端请求效果来看的话,感觉像是接口请求完成后,很短的时间内就将响应的文本全部打印了

@Krysalbaba
Copy link

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回
Image

请问是后端无法逐字打印吗?
Image 上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。
Image 这是我使用其它的SDK测试的截图,二者效果都是相同的。

是逐字打印,但是后端请求效果来看的话,感觉像是接口请求完成后,很短的时间内就将响应的文本全部打印了

Image
这个是对应的日志

@LnYo-Cly
Copy link
Owner

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回
Image

请问是后端无法逐字打印吗?
Image 上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。
Image 这是我使用其它的SDK测试的截图,二者效果都是相同的。

是逐字打印,但是后端请求效果来看的话,感觉像是接口请求完成后,很短的时间内就将响应的文本全部打印了

Image 这个是对应的日志

确实有些问题,已经修改,可以再测试一下

@Krysalbaba
Copy link

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回
Image

请问是后端无法逐字打印吗?
Image 上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。
Image 这是我使用其它的SDK测试的截图,二者效果都是相同的。

是逐字打印,但是后端请求效果来看的话,感觉像是接口请求完成后,很短的时间内就将响应的文本全部打印了

Image 这个是对应的日志

确实有些问题,已经修改,可以再测试一下

已经好了,感谢大佬,但是好像缺少1.1.1版本的source 包,大佬能顺便上传下不

@LnYo-Cly
Copy link
Owner

碰到了同样的问题,因为工程需要重新写了个AiFactory,在方法里把OkHttpClient重新初始化一下就好了,具体原因不清楚,只是定位到是这个client影响到的流式返回
Image

请问是后端无法逐字打印吗?
Image 上图是我上线部署后的测试图,前后端都是正常流式返回、逐字打印的。
Image 这是我使用其它的SDK测试的截图,二者效果都是相同的。

是逐字打印,但是后端请求效果来看的话,感觉像是接口请求完成后,很短的时间内就将响应的文本全部打印了

Image 这个是对应的日志

确实有些问题,已经修改,可以再测试一下

已经好了,感谢大佬,但是好像缺少1.1.1版本的source 包,大佬能顺便上传下不

在release上传了1.2.0版本,增加了对deepseek推理字段的适配,修复了一些空指针异常的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants