postman 调用 openai 的接口是一次性返回的流数据要得等好久,使用基于 Python3.10 的 Tornado 异步非阻塞框架来实现 Server-sent events 通信是可以,但是 java 不知道怎么实现
1
yazinnnn 2023-04-10 18:32:44 +08:00 via Android
随便一个 reactive 的客户端都可以吧,比如 reactor vertx mutiny 之类的
|
2
brader 2023-04-10 18:36:43 +08:00
对了,提醒你一点我踩过的坑,你测试的时候最好不要用 postman 测试,即使你的是流式输出接口,它也会等全部数据回来。
你最好用命令行测试,或者用浏览器测试,浏览器测试加响应头 Content-Type: text/event-stream // 以事件流的形式告知浏览器进行显示 Cache-Control: no-cache // 告知浏览器不进行缓存 X-Accel-Buffering: no // 关闭 nginx 之类的缓存 |
3
brader 2023-04-10 18:40:11 +08:00
|
4
qiyuey 2023-04-10 18:44:11 +08:00
我用的 kotlin flow
|
5
ByteCat 2023-04-10 18:58:56 +08:00
我用 JS 写的,rx.js 的 observable ,貌似 Java 也有,可以试试?不过我不是很熟悉 Java 。
你的 postman 不是最新的吧,我试了 postman 可以接受 POST 请求的 SSE ,并且是流式传输的。 |
6
TWorldIsNButThis 2023-04-10 19:01:31 +08:00 via iPhone
flow ?
java 9 加的那个 然后用 spring webflux 以前一直不知道这类技术有什么实际应用场景,近来才知道原来 chatgpt 在用这个 |
7
zoharSoul 2023-04-10 19:12:49 +08:00
netty
|
8
unco020511 2023-04-10 19:13:50 +08:00
关键字 「 http sse 」,比如:https://github.com/square/okhttp/tree/master/okhttp-sse
|
9
K1W1 2023-04-10 19:18:55 +08:00 via iPhone
|
10
oldshensheep 2023-04-10 19:25:40 +08:00 1
|
11
cveoy 2023-04-10 23:39:45 +08:00
看看我接口就知道了
https://ai1.chagpt.fun/ |
12
jackwaycn 2023-04-11 10:16:22 +08:00
Spring SseEmitter
|
13
WashFreshFresh 2023-04-11 11:20:49 +08:00
websocket 就好了,原来搞语音识别返回文字效果挺好的。
|
14
sobev 2023-04-11 14:08:18 +08:00
|
15
jethroX 2023-04-11 14:39:41 +08:00
我是通过 http SSE 实现的,你可以搜一下你的 java 框架要怎么实现 sse 。
|
16
mmdsun 2023-08-22 09:57:37 +08:00
今天弄反应式项目集成 chatgpt ,发现 spring webflux 只需要一句话。。
https://www.baeldung.com/spring-server-sent-events 这个参考也不错: https://github.com/git-syl/chat-gpt-java-demo |