夜雨聆风学习资料网

ARTICLE · 1059487

不同质量PRD需求文档用AI生成应用效果比对

不同质量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. 1. 数据存储在数据库
  2. 2. 自动初始化表,自动创建表和示例数据
  3. 3. 实现服务端的数据库的增删改查todo的全部rest api
  4. 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需要实现哪些功能,他生成的表结构如下:

AI生成的接口代码如下,在ai agent工具下,这些接口放在server目录下修改后会自动发布。
如果人工实现,我们会写类似这样的代码,但在AI agent下这些代码会自动根据PRD生成。
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实现这个项目的增删改查功能,无需任何编码。
这里以workbuddy的免费模型为例,跑完后,可看到项目脚手架,非常清晰,为您自动生成404,错误页等,并在新页面实现了所有的增删改查功能。

程序自动根据技能指引实现了在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元后才能成功。

相关学习资料