ai_member_xiaoyan/skills/biaoshu/SKILL.md

116 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: biaoshu
version: 1.0.0
description: |
标数 — 飞书知识库剧本表格互动行自动编号与知识点统计技能。
从知识库文档的内嵌 Sheet 中识别互动行A列类型非 TL/空),自动在 B列写入顺序编号 ID
并支持从 D列提取知识点生成统计报告。
**触发场景:**
- 用户要求给剧本表格互动行"标数""编号""命名 ID"
- 用户要求统计剧本表格知识点覆盖情况
- 用户给出知识库链接 + "标数" / "统计知识点" / "加ID"
metadata:
requires:
permissions: ["sheets:spreadsheet"]
identity: bot
---
# 标数 — 剧本表格互动行编号与知识点统计
## 前置条件
1. 确认目标文档为飞书知识库 wiki 链接(`/wiki/` 开头)
2. BotApp ID: `cli_a931175d41799cc7`)已加入该知识空间
3. 使用 Bot 身份操作(不触发用户授权)
## ID 命名规则
- 格式:`{前缀}{序号}`,序号从 01 开始,两位数字补零
- 默认前缀:`12185`(可自定义)
- 示例:第一个互动 → `1218501`,第十个 → `1218510`
## 互动行识别规则
A列值不为空且不为 `TL` 的行即为互动行,按行号从小到大的顺序编号。
常见 A列值
- `中互动` / `中互动1` ... `中互动N`
- `核心互动-xxx` / `核心互动X-xxx`
- 不编号的:`TL` 行、空行
## 执行流程
### Step 1: 解析知识库链接
从用户提供的 wiki URL 中提取 `obj_token``space_id`
```
格式: https://{domain}/wiki/{obj_token}?...
```
### Step 2: 获取文档结构,定位内嵌 Sheet
```
GET /open-apis/docx/v1/documents/{obj_token}/blocks
Header: Authorization: Bearer {bot_tenant_access_token}
```
遍历 blocks找到 `block_type: 30`(内嵌 Sheet的 block`sheet.token` 中提取:
- `spreadsheet_token` = token 中 `_` 之前的部分
- `sheet_id` = token 中 `_` 之后的部分
### Step 3: 读取表格数据
```
GET /open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{sheet_id}!A1:I{max_rows}?valueRenderOption=ToString
```
### Step 4: 识别互动行并生成 ID
遍历数据行(跳过表头),对 A列不为空且不为 `TL` 的行,按顺序分配编号。
### Step 5: 写入 B列
使用 values API 逐行写入range 格式:`{sheet_id}!B{row}:B{row}`
```
PUT /open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values
Body: {
"valueRange": {
"range": "{sheet_id}!B{row}:B{row}",
"values": [["{id}"]]
}
}
```
### Step 6: 验证
回读 B列确认写入正确。
## 知识点统计(可选,用户单独要求时执行)
读取 D列知识点列按出现次数汇总
1. 遍历有 A列标记的互动行A列≠TL/空),提取 D列知识点
2. 多行知识点(换行分隔)分别统计
3. `Over here.` / `Over here!` 合并为 `Over here.` 统一计数
4. 输出格式:
```
序号 | 行号 | 类型 | 知识点 | 次数
```
## 示例
**输入:**
> https://makee-interactive.feishu.cn/wiki/P9bvw6nXziqzWZkxDmMcOZN4ndc 标数
**输出:** 识别 16 个互动行,按序写入 `1218501` ~ `1218516` 到 B列。
## 注意事项
- 写单个单元格 range 必须用 `B{row}:B{row}` 格式(非 `B{row}`
- Bot tenant_access_token 通过飞书应用 App ID + App Secret 获取
- 数据行范围需根据实际表格调整(跳过公式行和尾部空行)
- 若 B列已有旧 ID直接覆盖写入新 ID