问题描述:之前的流式接口 需要通过调用大模型来生成流式接口的数据,现在需要限制对大模型的调用,节省token成本,对已匹配的答案直接输出到大模型接口即可。
具体实现如下:
1、支持模拟流式接口数据格式,输出流式结果。
Boolean returnFlag = sessionChatRecordEntityExt.getReturnFlag();
String returnContent = sessionChatRecordEntityExt.getReturnContent();
if (returnFlag) {
// 如果可以直接返回结果
SessionChatRecordEntity finalAskRecord = askRecord;
AtomicReference<Boolean> isEndflag = new AtomicReference<>(Boolean.FALSE);
return ResponseEntity.ok()
.header("Access-Control-Allow-Origin", "*")
.contentType(org.springframework.http.MediaType.TEXT_EVENT_STREAM)
.cacheControl(org.springframework.http.CacheControl.noCache())
.body(outputStream -> {
try {
// 创建一个初始的 ChatResponse 实例,用于拆分和发送结果
ChatResponse initialResponse = new ChatResponse();
initialResponse.setId(IDGenerator.generateID()); // 或者使用其他生成ID的方法
initialResponse.setObject("chat.completion");
initialResponse.setIs_end(false);
initialResponse.setIsTruncated(false);
initialResponse.setNeedClearHistory(false);
initialResponse.setBan_round(null);