超级AI智能体完结篇
效果
现在项目就差一个前端,直接用cursor生成,
效果如下:


现在基本可用。
其中最让人折磨得点就是,前端在识别sse连接关闭的代码上浪费了很多的时间,因为,即使连接关闭了,但是前端不知道是超时,还是结束了,所以我查看了网上的资料,实现了一种比较优雅的结束方式,下面是代码;
后端
我们再结束之前再发送一次消息,这个消息比较特殊,是一个标致符号,用于前端做判断
▼java复制代码public class SseEmitterUtils { private static final String DONE_MESSAGE = "[DONE]"; /** * 完成SSE连接:发送结束标志并关闭连接 * * @param emitter 要完成的SseEmitter对象 */ public static void completeWithDone(SseEmitter emitter) { try { emitter.send(DONE_MESSAGE); } catch (IOException e) { // 可选:记录日志或处理异常 } finally { emitter.complete(); } } /** * 完成SSE连接并携带错误信息 * * @param emitter 要完成的SseEmitter对象 * @param ex 发生的异常 */ public static void completeWithError(SseEmitter emitter, Throwable ex) { try { emitter.send("ERROR: " + ex.getMessage()); } catch (IOException ignored) { } finally { emitter.completeWithError(ex); } } }
前端
▼vue复制代码eventSource.onmessage = (event) => { try { const data = event.data // 检查是否收到结束标志 if (data === DONE_MESSAGE) { console.log('收到SSE结束标志,正常关闭连接') eventSource.close() onClose() return } // 处理正常消息 onMessage(data) } catch (error) { console.error('解析SSE消息失败:', error) onError(error) } }
具体的代码我已经上传到github,地址:https://github.com/fenghuanghuai/feng_ai_agent
好啦,完结啦,后续有问题在继续补充把。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
llm-wiki:把 AI 会话沉淀成可长期复用的本地知识库
7
我做了一个 AI Token Dashboard:把 Claude Code、Codex、Gemini 等 AI 工具的 Token 消耗统一看清楚
13
最近公司一直在推进AI的产品落地,我负责了一块有关于数据查询AI化的部分,大致能力就是,
实现用自然语言转换成sql进行查询,得到数据,返回给用户。我找了网上很多的资料,都是介绍
用对应的mcp和插件来实现,不能满足当前需求,因为这个能力是需要单独部署成mcp工具,给很
多部门做数据分析用。所以想请教大家有没有帖子或资源,是使用代码实现的。语言java和python都可。
3
error installing 14.21.3: open C:\Users\qcdfz\AppData\Local\Temp\nvm-npm-1073152608\npm-v6.14.18.zip
2
在sse模式下调用mcp服务出现 "this.ob" is null报错
3
