Java后端
·2025-10-18时间紧,先做主线功能,最后统一完成扩展功能
AI零代码生成平台第七期小结
1、第七期是对于生成内容的扩展,从单一的html格式文件和css,js,html三件套的文件,进阶到企业开发中真实的vue工程化项目的生成。vue工程化项目,和前两者除了生成出文件的区别,还有需要运行安装和构建的命令。
2、生成此种复杂的项目,从方案选型上,首先排除掉上期直接输出markdown然后自己解析的做法,因为生成的文档较长,可能不能正确输出,并且解析的时候可能存在问题。如果采用智能体,相对复杂,所以本项目利用AI工具调用的特性去生成,由工具负责控制写入文件到项目指定的目录下。
3、因为生成的项目比较复杂,所以推荐使用deep-seek或其他大模型的深度推理模型。
4、为了将推理的过程在页面上以打字机的效果进行输出,所以使用tokenStream流式输出,并且在工具中,因为需要写入文件,而文件名是和appId相关的,那么工具中是如何能拿到该appId呢,要通过@ToolMemoryId注解实现对话上下文传参的能力。
5、工具调用流式输出,利用了类加载的机制,将源码中的实现,复制了一份到项目中,以相同的路径,故在JVM类加载时可以优先加载项目中的路径。但是如果需要打包部署,那么还是需要对jar包进行修改(这一点,在实际开发中,做过activiti工作流对达梦数据库的适配,部署项目上线时,需要修改对应activiti jar包中的源码)
6、处理流式输出的结果,项目中是自己封装了一套消息类去处理AI 响应消息,工具执行结果消息和工具调用消息。
7、因为vue工程项目的特性,还需要提供一套利用代码运行打包部署的方法。主要是npm install 和 npm run build,如果是windows系统,是npm.exe。这里考虑到性能,还开发了异步接口,给流式输出完成时调用。在jdk21中,支持虚拟线程的方式,相比于传统的线程更加轻量级,传统的线程需要和操作系统关联,是一个比较重的操作。
8、可以编写策略类,对于生成普通文件,和vue项目,进行分派处理,因为两者无论是生成流式输出,还是写入文件,安装部署的流程都是不一致的。
2
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
