青天明镜映红尘
Java后端
·2025-10-19
AI零代码生成平台,第八期小结 # 生成应用封面 需求:给每个应用生成一个封面,时机是在应用部署完成之后 使用自动化工具进行截图,并且需要压缩处理,并且将图片放入对象存储中 ## 方案 封面生成采用异步的方式,因为工具需要打开浏览器,如果是高并发的时间段,可能造成内存不足的情况,还应该引入排队的机制。 在选择工具时,要考虑到截图质量,以及是否完整支持JS执行 Selenium工具截图,本质上就是使用浏览器驱动,控制浏览器的行为 ,使程序可以像人为控制那样操作浏览器。利用webDriver进行统一管理,将Selenium的命令,翻译成各个浏览器可以理解的具体指令。相当于jvm的作用 webDriverManager 自动管理浏览器驱动的工具库。 本地生成截图 1. 创建截图工具类,静态代码块初始化驱动 2. 保存图片到文件,需要文件流和路径 3. 压缩文件,需要原本的图片路径,压缩后的图片路径 4. 等待页面加载的方法,需要webDriver 5. 生成网页截图,组合上述三个方法 ### 对象存储 上传压缩后的图片到对象存储,并且删除本地的压缩文件,返回对象存储的地址 ### 部署项目的方法修改 在得到部署可访问的地址后,还需要根据该路径进行截图,更新应用封面,保存到数据库(采用异步的方式) # 下载代码 只有自己生成的代码才能下载,并且下载的是原始代码,不是打包构建过后的代码,还需要排除一些不必要的文件 实现方式是将文件打包成ZIP压缩包,然后返回给前端,要设置特殊的响应头 这里的项目路径,是项目的保存路径,不是部署路径 ![image-20251018211746526](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20251018211746526.png) 1. 基础校验 2. 设置HTTP响应头(要下载的文件名,不要包含中文) 3. 定义文件过滤器 4. 压缩 # AI智能选择方案 让后端自动判断(AI决定),用户的需求应该生成原生HTML,简单页面,还是vue工程化项目 核心是让AI对用户的提示词进行分析,选择合适的方案。 智能路由,应该使用简单的模型,因为功能比较简单。编写提示词文件,编写接口和工厂,利用AI结构化输出。工厂的模型无需使用流式。 如果使用deep-seek的枚举输出,需要把配置中的结构化输出配置去除掉 后续优化成更轻量级的模型
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP