package com.smtaiserver.smtaiserver.core; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.View; import com.smtaiserver.smtaiserver.javaai.SMTJavaAISession; import com.smtaiserver.smtaiserver.javaai.qwen.SMTJavaAISessionQwen; import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgent; import com.smtservlet.util.Json; import com.smtservlet.util.SMTStatic; public class SMTCheckChatStreamView implements View { private SMTAIServerRequest _tranReq; private String _question; private Map _mapId2Agent; public SMTCheckChatStreamView(SMTAIServerRequest tranReq, String question, Map mapId2Agent) { _tranReq = tranReq; _question = question; _mapId2Agent = mapId2Agent; _tranReq.setChunkedMode(true); } @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("UTF-8"); //response.setHeader("Transfer-Encoding", "chunked"); response.setContentType("text/plain;charset=UTF-8"); //response.setContentType("application/json;charset=UTF-8"); response.setHeader("smtstream", "chunked"); SMTJavaAISession session = new SMTJavaAISessionQwen(); try { session.setQuestion(_question); session.setAgentMap(_mapId2Agent); Json jsonResult = session.executeSupervisor(false, null, null, _tranReq, false); if(!jsonResult.safeGetBoolean("json_ok", false)) _tranReq.sendChunkedBlock("error", "后台发生错误:" + jsonResult.safeGetStr("json_msg", "内部错误")); } catch(Exception ex) { _tranReq.traceLLMDebug("call chat stream excetion : \n" + SMTStatic.toString(ex)); _tranReq.sendChunkedBlock("error", "后台发生错误:" + ex.getMessage()); } finally { session.close(); } _tranReq.sendChunkedBlock("finish", ""); } }