百度文心一言 java 支持流式输出,Springboot+ sse的demo
在Spring Boot中,你可以使用Server-Sent Events(SSE)来实现与百度文心一言的交互,并进行流式输出。以下是一个简单的Spring Boot应用程序的示例,它使用SSE支持百度文心一言的流式输出。
首先,添加Spring Boot的SSE支持:
@Controller
public class SseController {
@GetMapping(path = "/sse-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter handleSse() {
SseEmitter emitter = new SseEmitter();
// 在新线程中处理长时间连接的逻辑
new Thread(() -> {
try {
// 模拟文心一言的流式响应
for (int i = 0; i < 5; i++) {
emitter.send("文心一言的响应" + i);
Thread.sleep(1000); // 每秒发送一次
}
emitter.complete(); // 完成流事件
} catch (Exception e) {
emitter.completeWithError(e);
}
}).start();
return emitter;
}
}
确保你的Spring Boot应用程序包含了SSE依赖,并且已经配置了必要的Maven或Gradle依赖。
前端代码可以是这样的:
<!DOCTYPE html>
<html>
<head>
<title>SSE Stream Example</title>
</head>
<body>
<h1>文心一言流式输出示例</h1>
<div id="output"></div>
<script>
const eventSource = new EventSource('/sse-stream');
eventSource.onmessage = function (event) {
document.getElementById('output').innerHTML += event.data + '<br>';
};
</script>
</body>
</html>
这个简单的示例创建了一个SseEmitter,然后在一个新线程中发送事件,模拟了文心一言的流式响应。前端通过EventSource连接到这个SSE流,并将接收到的数据追加到页面上。
评论已关闭