Java后端
·2025-10-19AI零代码生成平台,第八期小结
# 生成应用封面
需求:给每个应用生成一个封面,时机是在应用部署完成之后
使用自动化工具进行截图,并且需要压缩处理,并且将图片放入对象存储中
## 方案
封面生成采用异步的方式,因为工具需要打开浏览器,如果是高并发的时间段,可能造成内存不足的情况,还应该引入排队的机制。
在选择工具时,要考虑到截图质量,以及是否完整支持JS执行
Selenium工具截图,本质上就是使用浏览器驱动,控制浏览器的行为 ,使程序可以像人为控制那样操作浏览器。利用webDriver进行统一管理,将Selenium的命令,翻译成各个浏览器可以理解的具体指令。相当于jvm的作用
webDriverManager 自动管理浏览器驱动的工具库。
本地生成截图
1. 创建截图工具类,静态代码块初始化驱动
2. 保存图片到文件,需要文件流和路径
3. 压缩文件,需要原本的图片路径,压缩后的图片路径
4. 等待页面加载的方法,需要webDriver
5. 生成网页截图,组合上述三个方法
### 对象存储
上传压缩后的图片到对象存储,并且删除本地的压缩文件,返回对象存储的地址
### 部署项目的方法修改
在得到部署可访问的地址后,还需要根据该路径进行截图,更新应用封面,保存到数据库(采用异步的方式)
# 下载代码
只有自己生成的代码才能下载,并且下载的是原始代码,不是打包构建过后的代码,还需要排除一些不必要的文件
实现方式是将文件打包成ZIP压缩包,然后返回给前端,要设置特殊的响应头
这里的项目路径,是项目的保存路径,不是部署路径

1. 基础校验
2. 设置HTTP响应头(要下载的文件名,不要包含中文)
3. 定义文件过滤器
4. 压缩
# AI智能选择方案
让后端自动判断(AI决定),用户的需求应该生成原生HTML,简单页面,还是vue工程化项目
核心是让AI对用户的提示词进行分析,选择合适的方案。
智能路由,应该使用简单的模型,因为功能比较简单。编写提示词文件,编写接口和工厂,利用AI结构化输出。工厂的模型无需使用流式。
如果使用deep-seek的枚举输出,需要把配置中的结构化输出配置去除掉
后续优化成更轻量级的模型
1
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
