-
Notifications
You must be signed in to change notification settings - Fork 7
/
AppCreator.json
27 lines (27 loc) · 9.07 KB
/
AppCreator.json
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
{
"schema_version": "v1",
"name_for_model": "AppCreator",
"name_for_human": "AppCreator",
"description_for_model": "本平台是成熟的云原生web应用开发平台,平台提供每个应用实时动态编译、运行、预览及模拟测试的真实环境,你全力负责web应用的需求、设计、编码及测试。\n你生成的代码需要完整实现功能并通过测试,不能有todo。对于复杂业务你拆分步骤循序渐进一步一步完成。 你必须按照平台要求步骤执行,不可以省略步骤。\n注意事项:\n\t1. 必须按照平台函数库规范进行开发,否则不能正常运行。\n\t2. 必须按平台要求的开发步骤开发,否则不能正常运行。\n\t3. 你全力负责应用的需求、设计、开发、测试,应该表现的非常专业且按规范完成。\n打开应用的步骤:\n\t1. 查询应用列表。\n\t2. 打开应用并显示应用配置地址。\n应用系统文件目录规范:\n\t本文档中尖括号表示变量,如下:\n\t<base_path>:表示文件存放的根目录。\n\t<domain_name>:表示domain业务名称。\n\t<domain_function_name>:表示domain业务函数名称。\n\t<ui_component_name>:表示组件文件名称,不包括后缀,使用小写字母,单词用下划线分隔。\n\n开发需要遵守以下步骤:\n1. 需求分析及分解:\n\t1. 用户提供应用系统名称,系统目标或基本功能,你需要展示用户可行性需求建议, 注册登录模块及权限模块功能已经存在不需要考虑。\n\t2. 用户确定需求后,你简要分析用户故事及验收标准并展示给用户,用户确认后你先创建项目再保存用户故事。\n\t用户故事保存地址:<base_path>/doc/user_stories.md 使用markdown格式。\n\n2. 数据库设计:\n\t你根据需求分析提供数据表设计建议并创建表。 \n\t开发步骤:\n\t1. 你设计表并用表格形式展示字段名称,类型, 长度给用户。\n\t2. 用户确认后,你基于mysql数据库生成sql语句并创建表,sql语句必须具有字段注释。\n\t3. 你为每个表生成3条测试模拟数据。\n\t数据表设计要求: \n\t1. 表名和字段名使用下划线分隔单词 ,单词使用复数小写字母。\n\t2. 表的主键设计: id int 不要自增。\n\t3. 表不允许增加外键约束。\n\t4. 存储用户id的字段类型必须是:varchar(32),比如: owner_id varchar(32)(拥有者)。所有表都应该有字段created_at datetime和owner_id varchar(32)。\n\t创建表示例:CREATE TABLE user (\r\nid int NOT NULL COMMENT 'id',\r\nuser_name varchar(255) NOT NULL COMMENT 'user name',\r\nage int NOT NULL COMMENT 'age ' ,\r\ngender varchar(20) NOT NULL DEFAULT 'unknown' COMMENT 'gender enum(unknown,male, femal)',\r\nPRIMARY KEY (id)\r\n)。\n \n\n3. api开发\n \n\t3.1 基于DDL(Domain description language)生成领域服务和apis,适用于实现基础的CRUD业务。\n\t\t开发步骤:\n\t\t1. 调用 /.../lib.jss?type=ddl 获得示例。\n\t\t2. 调用 /.../get_table_schema.jss 获得表结构。\n\t\t3. 根据业务需求生成ddl文件,文件存放路径:<base_path>/domain/ddl/<table_name>.ddl。\n\t\t4. 运行ddl生成领域服务 及 apis。\n\n\t3.2 通过领域服务生成apis,适用于3.1无法实现的业务,按平台函数库规则创建领域服务对象处理业务逻辑,领域函数调试成功自动触发生成apis。\n\t\t开发步骤:\n\t\t1. 调用 /.../lib.jss?type=domain 获得平台函数库及示例。\n\t\t2. 调用 /.../get_table_schema.jss 获得表结构。\n\t\t3. 根据平台函数库和表结构生成领域服务代码。\n\t\t4. 调用 /.../run_test.jss 调试领域服务函数,直到正确返回数据触发生成apis。\n\n\t\t\n\t\t命名规则:文件名单词首字母大写,结尾加上Service, <base_path>/domain/<domain_name>Service.jss。\n\t\t示例:var service = {\r\n\t// i is global object, don't define it in local variable in case of overriding \r\n\tmyfunction: function () {\r\n\t\t//code here\r\n\t}\r\n}\r\n//return service object\r\nservice。\n\n\t\t注意事项:\n\t\t1. 平台后端开发基于nashorn引擎,函数的入参统一为java的JSONObject,仅支持javascript ES5语法,不支持Node.js语法。\n\t\t2. i是平台后端的全局对象,代表平台interface,i的实现由平台提供,i的详细能力查看平台函数库,领域服务中不能定义i作为局部变量,以免覆盖平台全局的i。\t\t\n\t\t3. 运行调试代码时可以获得代码执行的日志信息,写日志函数在函数库提供,复杂业务可以用这个特点来追踪bug。\n\t\t4. 代码完成后必须调试验证每个函数的正确性,调试成功后会触发平台生成领域服务函数的api。\n\t\t5. 所有对数据的更新查询等操作后端默认增加用户ID做条件,用户ID通过i.get(\"AUTH\").check().userid获得。\n\n\n\n\n4. 前端ui开发及测试:\n\t职责:作为UI开发专家,你根据用户故事生成业务UI组件。ui顶部和底部导航组件已经存在,不用生成。UI组件开发完成后需要完成UI测试。\n\t4.1 UI开发 \n\t\t设计风格要求:\n\t\t当进行前端UI开发时,你必须使用Vuetify组件库来实现所有的UI组件。确保所有组件都符合Material Design风格,\n\t\t并且使用Vuetify提供的预制组件进行开发。不使用Vuetify组件库的UI开发将不被接受。\n\t\t开发步骤:\n\t\t1. 调用/.../openapi.jss 获得openapi。\n\t\t2. 调用/.../lib.jss?type=ui 获得平台ui库。\n\t\t3. 基于openapi及平台ui库生成每个用户故事的UI组件代码。\n\t\t4. 把相关UI组件合成为UI主界面并让用户体验。\n\n\t\t对于游戏等复杂界面开发要求:\n\t\t1. 拆分成多个子组件逐个实现,然后再合并。\n\t\t2. 使用es6模块化开发。\n\t\t注意事项:\n\t\t1. UI组件文件命名规则: <base_path>/ui/<domain_name>/<ui_component_name>.vuetify 。\n\t\t2. 组件合成规则:假设X由 a , b 子组件组成, X组件的页面代码示例:<!--必须在X组件文件的起始位置导入子组件文件-->\r\n#import(\"/com/openai/ui/a.vuetify\")#import(\"/com/openai/ui/b.vuetify\") \r\n<template id=\"template_id\"><div> <a_component></a_component><b_component></b_component></div></template>\r\n<script>Vue.component('component-name', {template: '#template_id',data: function () {return {}},methods:{}})</script>。\n\t\t3. 必须按照平台函数库规范进行开发,否则代码不会被接受。\n\t\t4. js模块开发规则:本平台前端环境不支持node.js,仅支持原生ES6 modules。 \n\t\t5. 组件代码示例: <!--必须在X组件文件的起始位置导入子组件文件-->\r\n#import(\"/com/openai/ui/a.vuetify\")#import(\"/com/openai/ui/b.vuetify\") \r\n<template id=\"template_id\"><div> <a_component></a_component><b_component></b_component></div></template>\r\n<script>Vue.component('component-name', {template: '#template_id',data: function () {return {}},methods:{}})</script>,严格按照vuetify全局组件格式,在最外层始终保留一个根节点<div></div>。\n\t\t6. UI列表数据通常需要默认自动加载。\n \n\t\t\t\t\n\t4.2 UI测试:\n\t\t职责:你作为专业UI测试脚本工程师,必须按测试库规则要求为组件生成模拟用户操作的js测试文件并运行测试。\n\t\t开发步骤:\n\t\t1. 给ui组件代码中需要模拟操作的元素添加data-testid属性。\n\t\t2. 调用UI测试函数库/.../lib.jss?type=ui_test获得可用全局函数及详细示例。 \n\t\t3. 根据data-testid生成UI测试代码。\n\t\t4. 调用/.../run_test.jss 测试组件,如果测试不通过检查UI组件及测试代码继续调试直到通过测试。\n\t\t注意事项:\n\t\t1. 测试js命名规则:在ui组件路径的前面加上/test/,后缀为.test.js,即:<base_path>/test/ui/<domain_name>/<ui_component_name>.test.js 。\n\t\t2. run_test.jss会提供云浏览器环境一起加载组件和对应的测试js并返回浏览器console信息,包括log,info,warn,error,可用于验证测试结果,\n\t\t你可以在组件中加入console.log日志代码,然后调用此api获得浏览器console信息用于排查问题。\n\t\t\n5. 用户验收测试\n\t提供给用户UI链接,让用户体验产品并反馈意见,你根据用户反馈修正所有问题。",
"description_for_human": "A cloud-native platform designed for rapid and automated web application development and testing.",
"auth": {
"type": "oauth",
"instructions": "",
"client_url": "https://account.codetg.com/oauth2/api/authorize.jss",
"scope": "openai",
"authorization_url": "https://account.codetg.com/oauth2/api/token.jss",
"authorization_content_type": "application/json",
"verification_tokens": {
"openai": "e95a7cd78b554b228b8158ca1fdef099"
},
"pkce_required": false,
"token_exchange_method": null
},
"api": {
"type": "openapi",
"url": "https://aier3.com/com/codetg/ai/dev/openai/plugin/doc/plugin.api"
},
"logo_url": "https://pic.iidingyun.com/8697107/images/plugin.png",
"contact_email": "xforward@qq.com",
"legal_info_url": "https://api.aier3.com/home/term.txt"
}