ARTICLE · 1059487
不同质量PRD需求文档用AI生成应用效果比对
【】
概述
接上文《PRD需求文档符合EARS语法的拆解》,本文讲解使用 同一技能 根据不同PRD文档生成动态应用的全流程效果比对(普通需求描述和使用技能PRD文档优化器完善待澄清需求情况下的差异),该应用全程无人工编码,人工部署,全部依赖AI提示词,两则AI提示词差别如如下:
全栈AI开发应用Free 实现todo项目增删改查和多端支持,生成的应用放在e:\temp目录下,应用名是todoc
AI提示词1
全栈AI开发应用Free 根据需求文档 ears-todo-requirements.md
生成应用,后台接口的编写必须符合本技能规范,生成的应用放在e:\temp目录下,应用名是todoc
AI提示词2
该项目主要包含功能:
1. 数据存储在数据库 2. 自动初始化表,自动创建表和示例数据 3. 实现服务端的数据库的增删改查todo的全部rest api 4. 实现websocket推送:保持各个界面视图同步 
使用前先在agent工具里安装技能:
【PRD文档优化器】:https://skillhub.cn/skills/user_537ba43f/prd2ears
【全栈AI开发应用Free】:https://skillhub.cn/skills/user_537ba43f/ss-dep-ui
动态接口设计
AI自动根据PRD生成表结构设计,在不同PRD文档的情况下差异较大,比如我们在支持ears语法的PRD里明确了todo需要实现哪些功能,他生成的表结构如下:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 (function(){ let web_params = params.params; let handler = web_params.handler; let dt = Date.now(); if(handler === "add"){ db.insert("todo", {"name": web_params.title, "sts": 0,"dt":dt}); ws.broadcast({"action":"refresh"}); return 0; }else if(handler === "sts"){ db.execute("update todo set sts=" + web_params.sts + ",dt=" + dt + " where id = " + web_params.id); ws.broadcast({"action":"refresh"}); return 0; }else if(handler === "save"){ var title = (web_params.title || "").replace(/'/g, "''"); db.execute("update todo set name='" + title + "', dt = " + dt + " where id = " + web_params.id); ws.broadcast({"action":"refresh"}); return 0; }else if(handler === "list"){ return db.query("SELECT * FROM todo order by id desc"); }else if(handler === "remove"){ db.execute("delete from todo where id= " + web_params.id); ws.broadcast({"action":"refresh"}); return 0; }else if(handler === "search"){ var kw = (web_params.title || "").replace(/'/g, "''"); return db.query("SELECT * FROM todo where name like '%" + kw + "%'"); }else if(handler === "init"){ db.createTable("todo", "id INTEGER PRIMARY KEY, name TEXT, sts INTEGER, dt INTEGER"); db.insert("todo", {name: "hello", sts: 0}); db.insert("todo", {name: "world", sts: 0}); return 0; }})()
AI生成应用/维护项目
使用技能新建todo项目时,技能会自动根据server下的服务端demo_todo.js实现这个项目的增删改查功能,无需任何编码。

程序自动根据技能指引实现了在page.tsx中推送刷新列表功能,这样AI生成的一个动态项目就可以在本地看到效果,如果达到你预期了就可以打包发布了:https://localhost:3000/
单独打包发布
可以在一开始不指引应用发布到线上,等本地调测完成后,只需要在workbuddy中输入打包发布到线上即可实现应用发布。

在workbuddy中会提示您访问地址即可访问应用,最终我们可以通过如下地址比较生成的应用差异:
AI提示词1:http://todo.s.sumslack.com/todo/
AI提示词2:http://todoc.s.sumslack.com/
目前发布接口已改为演示付费接口,所以发布应用需要支付0.01元后才能成功。