ai_member_xiaoyan/business_knowledge/skills/biaoshu/SKILL.md

3.3 KiB
Raw Blame History

name version description metadata
biaoshu 1.0.0 标数 — 飞书知识库剧本表格互动行自动编号与知识点统计技能。 从知识库文档的内嵌 Sheet 中识别互动行A列类型非 TL/空),自动在 B列写入顺序编号 ID 并支持从 D列提取知识点生成统计报告。 **触发场景:** - 用户要求给剧本表格互动行"标数""编号""命名 ID" - 用户要求统计剧本表格知识点覆盖情况 - 用户给出知识库链接 + "标数" / "统计知识点" / "加ID"
requires identity
permissions
sheets:spreadsheet
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_tokenspace_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的 blocksheet.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