ai

ai命令

1. 基本使用

ai命令的专用语法如下:

ai <command> [options1|options2|options3...]

2. 命令列表

若命令带了 (M),则表示 MacOS 系统中,会将生成结果直接拷贝到剪切板中随后可直接粘贴。

命令执行 含义
ai uuid (M) 随机生成一定数量的UUID字符串
ai csv 读取数据文件中的Array数组数据,然后转换成csv的文件格式输出。
ai uk 检查数据文件中的 Data 数据是否符合唯一性约束,可直接针对批量数据执行唯一性检查。
ai data 专用数据生成器,可根据您的输入生成两个格式的Json数据:Object/Array
ai key 为输入数据中的Array或Object追加UUID格式的字段,字段可配置,默认为field = key属性。
ai str (M) 生成随机字符串。
ai md5 (M) 针对输入字符串进行符合 Zero 规范的 MD5 加密处理。
ai init 「工程命令」Zero前端工程初始化专用命令。
ai sync 「工程命令」Zero前端工程框架同步专用命令(更新Zero Ui框架专用)。

3. 数据通用格式

带data节点

{
    "data": [
         {
             "name": "Lang1",
             "email": "lang.yu1@hpe.com"
         },
         {
             "name": "Lang2",
             "email": "lang.yu2@hpe.com"
         }
    ]
}

直接格式

[
     {
         "name": "Lang1",
         "email": "lang.yu1@hpe.com"
     },
     {
         "name": "Lang2",
         "email": "lang.yu2@hpe.com"
     }
]

Methods

(static) csv()

ai csv

1. 命令

ai csv -p <path>
短参 全参 类型 默认 含义
-p --path String (无) 「统一格式」数据文件路径。
-c --config String null 配置文件路径。
-s --separator String , Csv文件的分隔符设置。

2. 介绍

使用该命令将读取的Array数组数据转换成csv的文件格式

3. 执行

ai csv -p csv.json
# ...省略部分...
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
     "path": "csv.json",
     "config": null,
     "separator": ","
}
[Zero AI] 使用分隔符:,
[Zero AI] (Async)成功将数据写入到文件:./9bfe660a-d1be-48af-914f-97d996278086.csv!

输出的格式如下

name,email
Lang1,lang.yu1@hpe.com
Lang2,lang.yu2@hpe.com

4. 特殊说明

4.1. 数据文件格式

「通用(略)」数据部分必须对等,从第一个元素开始执行所有的字段解析,如果字段不匹配则直接跳过。

4.2. 带mapping配置文件

csv.zero

# KV; 为文件前缀
KV;
name=Name,email=Email

多余的输出

.......
[Zero AI] 映射配置数据:
{
     "name": "Name",
     "email": "Email"
}
[Zero AI] 使用分隔符:,
[Zero AI] 字段执行转换:name -> Name
[Zero AI] 字段执行转换:email -> Email
.......

最终数据

Name,Email
Lang1,lang.yu1@hpe.com
Lang2,lang.yu2@hpe.com

(static) data()

ai data

1. 命令

ai data -c <config>
短参 全参 类型 默认 含义
-c --config String (无) 配置文件路径。
-o --out String . 输出目录文件路径,文件名随机UUID。
-j --json Boolean false 是否生成Object数据格式,true则生成,否则生成Array格式。
-n --number Number 23 只有json = false时生效,生成Array的数据条数。

2. 介绍

根据规则随机生成数据Object/Array的专用命令。

3. 执行

ai data -c data.zero -j true
# ...省略部分...
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
     "config": "data.zero",
     "out": ".",
     "json": "true",
     "number": 23
}
[Zero AI] 处理过后的完整配置信息:
{
     "number": 23,
     "json": "true",
     "config": {
         "key": "Guid",
         "code": "Code",
         "array1": [
             "A",
             "B",
             "C"
         ],
         "fixed": "$FIXED:测试值",
         "date1": "ISO"
     }
}
[Zero AI] (Async)成功将数据写入到文件:./4f945df8-9d27-4169-9b18-d6d6385a310c.json!

4. 生成器设置

4.1. 生成器说明

生成规则 说明
[] 从数组中随机读取一个元素执行赋值。
$FIX:X 生成固定值X赋值给记录中的属性。
Guid 随机生成UUID字符串。
Code 系统编码字符串(只支持大写和点操作符27个字符),生成长度为6。
HeadCount 企业内部员工数量。
Mobile 手机号码。
Phone 座机号码。
Http 生成http://链接。
Https 生成https://链接。
Ftp 生成ftp://链接。
Domain 生成随机域名。
Protocol 随机生成协议。
IP 随机生成IP地址。
Bool 随机布尔值。
Color 随机Web色彩:#xxxxxx格式。
Version 生成版本号(通常是软件版本号)。
Percent 随机百分数。
Zip 随机邮编。
Email 随机电子信箱。
Region 随机区域信息。
Province 随机省会信息。
City 随机城市信息。
CityFull 随机城市全称,带区域。
County 随机二级县。
CountyFull 随机二级县全称。
Tld 随机顶级域名。
CnName 随机姓名。
CnFirst 随机姓。
CnCompany 随机公司。
CnDept 随机部门。
CnSection 随机科室。
CnScope 随机范围。
CnAddress 随机地址。
CnText 随机段落文字。
CnSentence 随机句子。
CnTitle 随机标题。
CnGender 随机性别。
EnName 随机姓名。
EnFirst 随机 First Name。
EnLast 随机 Last Name。
EnCompany 随机公司。
EnDept 随机部门。
EnSection 随机科室。
EnScope 随机范围。
EnAddress 随机地址。
EnText 随机段落文字。
EnSentence 随机句子。
EnTitle 随机标题。
EnGender 随机性别。
Iso ISO时间格式。
Now 当前时间格式。
Date 日期。
DateTime 日期/时间。
Time 时间。
NumberX 随机数字。
EnStringX 随机字符串。
CnStringX 随机字符串。
  • En/Cn前缀分别代表中文和英文。
  • NumberX, EnStringX, CnStringX可使用数字当后缀,数值表示长度,从1 - 10

4.2. data.zero例子

配置文件

P;
key=Guid
noArray=["A","B","C"]
noFixed=$FIXED:测试值
code=Code
headCount=HeadCount
mobile=Mobile
phone=Phone
http=Http
https=Https
ftp=Ftp
domain=Domain
protocol=Protocol
ip=IP
bool=Bool
color=Color
version=Version
percent=Percent
zip=Zip
email=Email
region=Region
province=Province
city=City
city2=CityFull
county=County
countyFull=CountyFull
tld=Tld
cnName=CnName
cnFirst=CnFirst
cnCompany=CnCompany
cnDept=CnDept
cnSection=CnSection
cnScope=CnScope
cnAddress=CnAddress
cnText=CnText
cnSentence=CnSentence
cnTitle=CnTitle
cnGender=CnGender
enName=EnName
enFirst=EnFirst
enLast=EnLast
enCompany=EnCompany
enDept=EnDept
enSection=EnSection
enScope=EnScope
enAddress=EnAddress
enText=EnText
enSentence=EnSentence
enTitle=EnTitle
enGender=EnGender
iso=Iso
now=Now
date=Date
datetime=DateTime
time=Time

数据内容

{
    "data": {
        "key": "23121742-2dab-4ac6-b578-2f6720410cfb",
        "noArray": "C",
        "noFixed": "测试值",
        "code": "KPEX.T",
        "headCount": 929,
        "mobile": "18488562585",
        "phone": "(012) 4610 1140",
        "http": "http://atrtyq.lu/oqkpau",
        "https": "https://qpvpuuvfk.do/hrfmjfp",
        "ftp": "ftp://osonkoesp.bf/tzghunec",
        "domain": "vqjxomib.hk",
        "protocol": "mid",
        "ip": "64.198.160.131",
        "bool": false,
        "color": "#f2d779",
        "version": "3.569",
        "percent": "0.09",
        "zip": "664855",
        "email": "w.omwjnhtfyg@ydjyl.ml",
        "region": "华南",
        "province": "山东省",
        "city": "来宾市",
        "city2": "台湾 基隆市",
        "county": "普兰店市",
        "countyFull": "吉林省 辽源市 东辽县",
        "tld": "gi",
        "cnName": "梁桂英",
        "cnFirst": "何",
        "cnCompany": "除成地界记头布公司",
        "cnDept": "形东严克部",
        "cnSection": "及着系科室",
        "cnScope": "范围效教对",
        "cnAddress": "华南湖南省 郴州市 临武县克加头被",
        "cnText": "地量好和儿县国主然格作提阶行。见快油个革想除当术取且可强地及至接院......",
        "cnSentence": "每光越主识比习接问织眼导社连且到教。",
        "cnTitle": "来却后市定越下较",
        "cnGender": "男",
        "enName": "Matthew Clark",
        "enFirst": "Frank",
        "enLast": "Allen",
        "enCompany": "Rvo Ynfg Ickxlfloy Vuux Company",
        "enDept": "Wnqxdzhse Ysericfry Vfewslfgdf Wqlxd Department",
        "enSection": "Vxdialugp Rdwicyvh Section",
        "enScope": "Scope: 持太",
        "enAddress": "Sandra, State Hinp, Street Martinez",
        "enText": "Nlebzn thwuouuth holdtxltqm npqb fzlsr smhjohs .......",
        "enSentence": "Ufhnqddg eikesnc xawwb vsmuvop qhorlgvel .......",
        "enTitle": "Feyv Apareaaif Ygnddotmr Jryvw",
        "enGender": "Female",
        "iso": "2021-03-16T09:54:43.442Z",
        "now": "2021-03-16 17:54:43",
        "date": "1988-11-05",
        "datetime": "1989-04-05 17:40:52",
        "time": "23:16:00"
    }
}

(static) init()

ai init

1. 命令

ai init -name <name>
短参 全参 类型 默认 含义
-n --name String (无) 项目名称以及目录名称。

2. 介绍

vertx-ui项目脚手架初始化专用命令。

3. 执行

ai init -name test-demo
[Zero AI] Zero AI 代码生成工具  : <标准工具>
[Zero AI] HomePage   : http://www.vertxai.cn
[Zero AI] Github     : https://github.com/silentbalanceyh/vertx-ai.git
[Zero AI] Version    : 0.3.2  「确认您的Node版本 ( >= 14.x ) 支持ES6, ES7.」
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
        "name": "test-demo"
}
[Zero AI] 工程构建目录:test-demo
Cloning into 'test-demo'...
remote: Enumerating objects: 888, done.
remote: Counting objects: 100% (888/888), done.
remote: Compressing objects: 100% (538/538), done.
remote: Total 36593 (delta 445), reused 610 (delta 339), pack-reused 35705
Receiving objects: 100% (36593/36593), 29.09 MiB | 151.00 KiB/s, done.
Resolving deltas: 100% (24009/24009), done.
[Zero AI] 执行工程初始化:test-demo
[Zero AI] (Sync)成功将数据写入到文件:test-demo/package.json!
[Zero AI] 执行后期处理:......
[Zero AI] 资源清理中:rm -rf test-demo/.zero/*
[Zero AI] 资源清理中:rm -rf test-demo/document/doc-web/*
[Zero AI] 资源清理中:rm -rf test-demo/document/doc-web-extension/*
[Zero AI] 资源清理中:rm -rf test-demo/guide/
[Zero AI] 资源清理中:rm -rf test-demo/_config.yml
[Zero AI] 资源清理中:rm -rf test-demo/CNAME
[Zero AI] 资源清理中:rm -rf test-demo/data.json
[Zero AI] 资源清理中:rm -rf test-demo/LICENSE
[Zero AI] 资源清理中:rm -rf test-demo/package-lock.json
[Zero AI] 资源清理中:rm -rf test-demo/yarn.lock
[Zero AI] 工程初始化完成:test-demo,您可以开始您的Zero Ui之行了!

(static) key()

ai key

1. 命令

ai key -p <path>
短参 全参 类型 默认 含义
-p --path String (无) 「统一格式」数据文件路径。
-f --field String key 追加的UUID的字段名。

2. 介绍

使用该命令针对数据中的所有节点追加field = key的UUID值。

3. 执行

ai key -p key
# ...省略部分...
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
     "path": "key",
     "field": "key"
}
[Zero AI] (Async)成功将数据写入到文件:key/key2.json!
[Zero AI] (Async)成功将数据写入到文件:key/key3.json!
[Zero AI] (Async)成功将数据写入到文件:key/key1.json!

(static) md5()

ai md5

1. 命令

ai md5 -i <Input>
短参 全参 类型 默认 含义
-i --input String 输入需要MD5加密的原始字符串。

2. 介绍

使用该命令加密输入字符串,如果平台支持还会拷贝到剪切板中,目前支持的操作系统:

  • darwin:MacOs苹果操作系统

3. 执行

ai md5 -i smaveapp                                                                                                                                                                                                                                                 lang@LangYus-MacBook-Pro
[Zero AI] Zero AI 代码生成工具  : <标准工具>
[Zero AI] HomePage   : http://www.vertxai.cn
[Zero AI] Github     : https://github.com/silentbalanceyh/vertx-ai.git
[Zero AI] Version    : 0.3.19  「确认您的Node版本 ( >= 14.x ) 支持ES6, ES7.」
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
    "input": "smaveapp"
}
[Zero AI] 当前操作系统:darwin
443196C59BF602102141607D992702EE
[Zero AI] 加密的字符串已经成功拷贝到剪切板中!

(static) str()

ai str

1. 命令

ai str -n <N> -l <N>
短参 全参 类型 默认 含义
-n --number Number 1 指定需要生成随机字符串的数量,默认生成1个随机字符串值,\n符号分割。
-l --length Number 64 指定随机字符串长度,默认长度64。

2. 执行

使用该命令生成指定数量的随机字符串,如果平台支持还会拷贝到剪切板中,目前支持的操作系统:

  • darwin:MacOs苹果操作系统

3. 执行

ai str                                                                                                                                                                                                                                                  lang@LangYus-MacBook-Pro
[Zero AI] Zero AI 代码生成工具  : <标准工具>
[Zero AI] HomePage   : http://www.vertxai.cn
[Zero AI] Github     : https://github.com/silentbalanceyh/vertx-ai.git
[Zero AI] Version    : 0.3.5  「确认您的Node版本 ( >= 14.x ) 支持ES6, ES7.」
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
   "number": 1,
   "length": 64
}
[Zero AI] 随机字符串,生成数量:1,长度:64
[Zero AI] 当前操作系统:darwin
5lTe8OsBsi8bw6PbVlS0aftyAfjsmEGjiwXXWpL5IEM3px6ZiM8Vz2nKnnqHFDnv
[Zero AI] 生成的随机字符串已经全部成功拷贝到剪切板中!

(static) sync()

ai sync

1. 命令

ai sync -p <path>
短参 全参 类型 默认 含义
-p --path String . 前端项目根目录,配置文件路径。

2. 介绍

此命令用于从前端直接更新最新的 Zero Ui 框架部分代码,且在前端新版脚手架中,Zero Ui部分的框架代码全部位于 .gitignore 文件中不作为源代码提交。

3. 执行

ai sync
[Zero AI] Zero Ecotope AI工具项  : <标准工具>
[Zero AI] HomePage   : http://www.vertxai.cn
[Zero AI] Github     : https://github.com/silentbalanceyh/vertx-ai.git
[Zero AI] Version    : 0.3.30  「确认您的Node版本 ( >= 18.x ) 支持ES6, ES7.」
[Zero AI] AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
    "path": ".zero"
}
[Zero AI] 发现存在旧代码,正在删除:.zero/scaffold-ui
[Zero AI] 拉取最新代码:.zero/scaffold-ui
Cloning into '.zero/scaffold-ui'...
remote: Enumerating objects: 4932, done.
remote: Counting objects: 100% (4932/4932), done.
remote: Compressing objects: 100% (4045/4045), done.
remote: Total 4932 (delta 677), reused 4644 (delta 499), pack-reused 0
Receiving objects: 100% (4932/4932), 11.34 MiB | 2.12 MiB/s, done.
Resolving deltas: 100% (677/677), done.
[Zero AI] 开始更新主框架:......
[Zero AI] 处理目录:run-default.sh
[Zero AI] 处理目录:run-doc.sh
[Zero AI] 处理目录:run-zero.sh
[Zero AI] 处理目录:run-zero.bat
[Zero AI] 处理目录:run-update.sh
[Zero AI] 处理目录:document/
[Zero AI] 处理目录:scripts/
[Zero AI] 处理目录:config/
[Zero AI] 处理目录:src/cab/cn/cerebration/
[Zero AI] 处理目录:src/cab/cn/extension/
[Zero AI] 处理目录:src/cab/cn/economy/
[Zero AI] 处理目录:src/cab/cn/shared.json
[Zero AI] 处理目录:src/economy/
[Zero AI] 处理目录:src/entity@em/
[Zero AI] 处理目录:src/extension/
[Zero AI] 处理目录:src/environment/
[Zero AI] 处理目录:src/skin/index.d.ts
[Zero AI] 处理目录:src/skin/index.entry.js
[Zero AI] 处理目录:src/skin/index.js
[Zero AI] 处理目录:src/skin/plot.fn.mix.attr.js
[Zero AI] 处理目录:src/skin/plot.fn.of.document.js
[Zero AI] 处理目录:src/skin/wait._.v.locale.definition.js
[Zero AI] 处理目录:src/skin/wait.fn.skin.initialize.js
[Zero AI] 处理目录:src/skin/aroma-library/index.js
[Zero AI] 处理目录:src/skin/aroma-library/__.theme.shared/
[Zero AI] 处理目录:src/style/@old/
[Zero AI] 处理目录:src/style/connect/
[Zero AI] 处理目录:src/style/macrocosm/index.scss
[Zero AI] 处理目录:src/style/macrocosm/mod.screen.scss
[Zero AI] 处理目录:src/style/microcosm/
[Zero AI] 处理目录:src/style/uca/
[Zero AI] 处理目录:src/style/unstable/
[Zero AI] 处理目录:src/style/ux@legacy/
[Zero AI] 处理目录:src/ui/
[Zero AI] 处理目录:src/unfold/
[Zero AI] 处理目录:src/upper/
[Zero AI] 处理目录:src/utter/
[Zero AI] 处理目录:src/ux/
[Zero AI] 处理目录:src/zero/
[Zero AI] 处理目录:src/zest@web/
[Zero AI] 处理目录:src/zion/
[Zero AI] 处理目录:src/zither@em/
[Zero AI] 处理目录:src/zodiac/
[Zero AI] 处理目录:src/zoe@em/
[Zero AI] 处理目录:src/zone/
[Zero AI] 处理目录:src/index.js
[Zero AI] 主框架更新完成:.zero/scaffold-ui!

(static) uk()

ai uk

1. 命令

ai uk -p <path> -f <field>
短参 全参 类型 默认 含义
-p --path String (无) 「统一格式」待检查的数据文件路径。
-f --field String (无) 待检查的字段名,字段可使用field1,field2,field3格式检查多个字段。

2. 介绍

使用该命令检查数据文件中的数据是否包含重复属性field = value键值对。

3. 执行

ai uk -p uk.json -f name
# ...省略部分...
[Zero AI] Zero AI 系统启动......
[Zero AI] Zero AI 加载输入参数:
{
     "path": "uk.json",
     "field": "name"
}
[Zero AI] 检查字段:["name"]
[Zero AI] 字段出现重复值:name = Lang2
[Zero AI] 系统检查重复值完成!

(static) uuid()

ai uuid

1. 命令

ai uuid -n <N>
短参 全参 类型 默认 含义
-n --number Number 20 指定需要生成UUID值的数量,默认生成20个UUID字符串值,\n符号分割。

2. 介绍

使用该命令生成指定数量的UUID字符串,如果平台支持还会拷贝到剪切板中,目前支持的操作系统:

  • darwin:MacOs苹果操作系统

3. 执行

ai uuid -n 3
# ...省略部分...
[Zero AI] Zero AI 系统启动......
[Zero AI] 命令参数:
{
     "number": "3"
}
[Zero AI] UUID生成器,生成数量:3
[Zero AI] 当前操作系统:darwin
14ea44ed-5d9a-406a-9912-d95d8f6a8411
5d27ca30-3e74-4a8a-a149-e8d40677d542
a1ddb2ce-eabf-4a95-968d-8e4655207f44
[Zero AI] 生成的UUID已经全部成功拷贝到剪切板中!