| name | api-doc-generator |
| description | 用于生成对外api文档,当用户说生成接口文档,生成接口说明,增加接口说明,增加接口文档时使用该skill |
全局规范(适用于所有章节)
| 规则 | 说明 |
|---|
| 1. 中文标点符号 | 中文描述中使用中文标点符号,不要出现英文符号(如括号、逗号、句号等),注意不要出现多余或缺失标点。注意:markdown 表格格式符号(|、:、-)不属于此规则检查范围 |
| 2. 概念规范 | 尽量不要出现术语表之外的无法理解的私有概念,首次出现专业术语时应提供解释 |
| 3. 数据类型规范 | 描述数据类型时需要和代码中的数据类型一致;只和位宽有关时可以通过位宽表达 b8\b16\b32\b64 |
| 4. 逻辑通顺 | 前后逻辑通顺,下文不要出现上文没介绍的内容 |
| 5. 语言规范 | 写作时避免口语化,比如避免使用倒装句 |
| 6. 标题一致性 | 一级标题名和 markdown 文件名称应保持一致 |
| 7. 引用接口验证 | 文档中引用其他 API 接口时,必须确保该接口确实存在 |
具体规则
规则 #1:文档结构完整性
标准 API 文档必须包含以下章节:
- 产品支持情况
- 头文件/库文件
- 功能说明
- 函数原型
- 参数说明
- 返回值说明
- 约束说明
例外:结构体说明文档和通用说明文档不受此规则约束。
规则 #2:产品支持情况章节格式要求
产品支持情况章节必须满足以下格式规范要求(按接口实际支持度检查,不强制要求写全):
| 要求 | 说明 |
|---|
| 1. 产品型号名称 | 必须使用规范的产品型号名称:• Ascend 950PR/Ascend 950DT • Atlas A3 训练系列产品/Atlas A3 推理系列产品 • Atlas A2 训练系列产品/Atlas A2 推理系列产品 |
| 2. 顺序要求 | 多个产品型号必须按以下顺序填写(950 → A3 → A2) |
| 3. cann-filter标签 | 当文档中混合不同产品内容时,Ascend 950PR/Ascend 950DT 需要使用 cann-filter 标签包裹整行;如果整个 markdown 文件都是 Ascend 950PR/Ascend 950DT 的内容则不需要 |
| 4. 表格格式 | 表格必须有"产品"和"是否支持"两列,支持标记使用"√",markdown 表格能正常渲染即可 |
示例格式:
| 产品 | 是否支持 |
| :----------- | :------: |
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
规则 #3:功能说明章节内容要求
功能说明章节必须满足以下要求:
| 要求 | 说明 |
|---|
| 1. API作用与目的 | 必须清晰说明该 API 的作用和目的 |
| 2. API配合关系 | 如果与其他 API 有配合关系,需要说明(也可在约束说明中体现) |
| 3. 复杂接口说明 | 复杂的接口需要提供公式或配图辅助说明 |
规则 #4:函数原型章节格式要求
函数原型章节必须满足以下要求:
| 要求 | 说明 |
|---|
| 1. 与头文件一致 | 函数原型必须与头文件中的定义严格一致 |
| 2. 多原型区分与列表缩进 | 多个原型需要通过无序列表(-)区分,无序列表本身需要正确的缩进格式,并说明不同原型之间的区别 |
| 3. 无分号 | 函数原型末尾不需要分号 |
规则 #5:参数说明章节内容要求
参数说明章节必须满足以下要求:
| 要求 | 说明 |
|---|
| 1. 与函数原型一致 | 参数必须与函数原型严格保持一致 |
| 2. 输入/输出标识 | "输入"表示入参,"输出"表示出参,按实际情况正确填写 |
| 3. 数值类参数 | 需要列出取值范围、单位(取值范围在原型中已明确体现的可省略) |
| 4. 结构体参数 | 需要添加到结构体参数介绍的链接 |
| 5. 特殊取值解释 | 有特殊含义的参数取值需要增加解释 |
| 6. 复杂参数配图 | 复杂参数解释需要在表格后配图说明 |
| 7. 表格格式 | 表格必须有"参数名"、"输入/输出"、"描述"三列;markdown 表格格式符号(|、:、-)不属于文字标点符号检查范围 |
常见问题
- AscendString等一些基础类型的定义路径在 $ASCEND_HOME_PATH 环境变量定义的路径下,如果该环境变量为空,
可以搜索
/home/developer/Ascend或者/usr/local/Ascend路径,如果还找不到,不要再尝试了,直接询问用户cann-toolkit包的安装路径
- 现有文档中可能存在大量的HTML标签,新生成的文档不需要这些HTML标签.