Install
openclaw skills install cnsdoce中国工程造价技能,支持安装工程定额查询、组价计算与报价表生成。 数据源支持两种模式(见下方说明): · 默认模式:大模型推理数据(无需本地数据库,推荐新手) · 唯一来源模式:严格限定为山东省安装工程消耗量定额(2025版) + 济南市价目表(2026版) 核心依据:《建设工程工程量清单计价标准》GB/T 50500-2024(2025年9月1日起实施)。 当用户询问以下场景时触发本技能:定额子目查询(章节号+条款号溯源)、 安装工程组价(13分册各专业)、取费计算(管理费48.08%、利润29.15%)、 Excel报价表生成、山东/济南价目表查询。
openclaw skills install cnsdoceLLM_PROVIDER=doubao)| 配置项 | 状态 | 说明 |
|---|---|---|
| 混元 SDK | ✅ 已安装 | tencentcloud-sdk-python-hunyuan 3.1.56 |
| 混元 API Key | ✅ 已配置 | 环境变量 HUNYUAN_API_KEY(sk-开头) |
| 豆包 API Key | ✅ 已配置 | 环境变量 DOUBAO_API_KEY(ark-开头) |
| 豆包模型服务 | ✅ 已开通 | doubao-1-5-lite-32k-250115,直接用模型ID调用 |
| 默认 Provider | ✅ hunyuan | 环境变量 LLM_PROVIDER(默认混元免费) |
重要:豆包无需设置
DOUBAO_ENDPOINT_ID,直接用模型IDdoubao-1-5-lite-32k-250115即可调用。
LLM_PROVIDER=doubao 即可使用https://ark.cn-beijing.volces.com/api/v3/chat/completionsfrom scripts.llm_semantic_match import *
use_hunyuan() # 切换到腾讯混元(免费)⭐默认
use_doubao() # 切换到豆包模型(备选)
switch_model("hunyuan") # 通过字符串切换
restore_default() # 恢复默认(混元)
get_current_provider() # 查看当前使用的模型
# 默认使用混元
python scripts/llm_semantic_match.py "热泵安装" "第2册热力设备"
# 指定使用豆包
python scripts/llm_semantic_match.py "热泵安装" "第2册热力设备" --doubao
# 指定使用混元
python scripts/llm_semantic_match.py "热泵安装" "第2册热力设备" --hunyuan
# 环境变量切换(持久化)
export LLM_PROVIDER=doubao # 切换到豆包
export LLM_PROVIDER=hunyuan # 切换到混元(默认)
scripts/llm_semantic_match.pypython scripts/llm_semantic_match.py "热泵安装" "第2册热力设备"用户输入需求
↓
Step 1: LLM语义匹配(默认调用腾讯混元API)
↓
显示推荐定额列表,等待用户确认 ⭐【确认节点1】
↓
用户回复"确认" → 继续组价
用户回复"修改" → 重新匹配
↓
Step 2: 组价计算
↓
显示组价明细,等待用户确认 ⭐【确认节点2】
↓
用户回复"确认" → 生成报价表
用户回复"调整" → 修改参数
↓
Step 3: 生成报价表
↓
最终确认是否导出Excel ⭐【确认节点3】
↓
完成
| 确认节点 | 时机 | 用户操作 | 后续动作 |
|---|---|---|---|
| 确认节点1 | 定额匹配完成后 | 确认/修改/补充 | 进入组价或重新匹配 |
| 确认节点2 | 组价计算完成后 | 确认/调整取费 | 进入报价表生成或重新计算 |
| 确认节点3 | 报价表生成前 | 确认导出/查看明细 | 输出Excel或继续编辑 |
┌─────────────────────────────────────────┐
│ 📋 定额语义匹配结果 │
├─────────────────────────────────────────┤
│ │
│ 根据您的需求「热泵机组安装」, │
│ AI推荐以下定额组合: │
│ │
│ ┌─────────────────────────────────┐ │
│ │ 【主定额】 │ │
│ │ ☐ 2-1-5 热泵机组安装(200kW内)│ │
│ │ 基价:1,250.00元/台 │ │
│ ├─────────────────────────────────┤ │
│ │ 【辅定额】 │ │
│ │ ☐ 2-1-12 附件安装 │ │
│ │ ☐ 8-3-28 管道焊接 │ │
│ │ ☐ 8-5-15 管道冲洗试压 │ │
│ └─────────────────────────────────┘ │
│ │
│ ───────────────────────────────────── │
│ │
│ ⚠️ 请确认以上定额是否正确? │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ ✅ 确认 │ │ ❌ 修改 │ │
│ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────┘
📌 双模式说明:本技能支持两种数据源模式,默认使用大模型推理数据(无需配置本地数据库)。如需严格溯源,可切换为唯一来源模式。
使用大模型的工程造价知识进行定额推理,适用于:
如需精确到章节条款的溯源数据,请联系作者获取完整数据库,或自行导入:
数据来源:
导入方式:
quota.db 完整数据库文件(SQLite格式,含约3.5万条定额+8,441条材料价格)scripts/migrate_to_sqlite.py 从PDF/Excel源文件导入quota.db 放入 index/ 目录数据库结构:
quotas 表:quota_no、original_quota_no、名称、chapter、base_price、labor_fee 等materials 表:名称、规格型号、含税单价、除税单价、增值税率等以下10条代表性定额为技能内置示例数据,无完整商业授权。
| 定额编号 | 名称 | 基价(元) | 单位 | 人工费(元) |
|---|---|---|---|---|
| AZ-8-3-27 | 低压碳钢阀门安装 DN200 | 313.64 | 个 | 205.50 |
| AZ-8-3-28 | 低压钢管焊接 φ57×3.5 | 45.20 | 10m | 28.30 |
| AZ-10-1-1 | 室内给水镀锌钢管 DN50 | 89.50 | 10m | 56.80 |
| AZ-9-1-1 | 自动喷淋系统管道螺纹连接 | 68.30 | 10m | 42.10 |
| AZ-4-6-1 | 电气管道钢管敷设 MT20 | 56.80 | 100m | 35.20 |
| AZ-7-2-1 | 风管制作安装(δ0.75mm) | 98.50 | 10m² | 62.40 |
| AZ-6-1-1 | 温度仪表安装 | 125.00 | 支 | 78.60 |
| AZ-12-1-1 | 管道除锈(轻锈) | 18.60 | 10m² | 12.30 |
| AZ-13-1-1 | 脚手架搭拆(10m内) | 45.00 | 10m² | 28.50 |
| AZ-3-1-1 | 碳钢容器安装(5t内) | 680.00 | 台 | 420.00 |
⚠️ 法律声明:示例数据仅供技能演示使用,不得作为正式计价依据。正式项目请使用经授权的完整定额数据库。
重要:《山东省安装工程消耗量定额(2025版)》共 13个分册,覆盖安装工程全专业。
| 分册号 | 分册名称 | 主要内容 | 常见定额编号示例 |
|---|---|---|---|
| 第1册 | 机械设备安装工程 | 泵、风机、制冷设备、通用设备的安装与调试,找正、灌浆 | 1-1-1(泵安装) |
| 第2册 | 热力设备安装工程 | 锅炉、换热站、余热利用系统安装 | 2-1-1(锅炉安装) |
| 第3册 | 静置设备与工艺金属结构 | 容器、塔器、储罐制作安装,金属平台/梯子/栏杆 | 3-1-1(塔器安装) |
| 第4册 | 电气设备安装工程 | 变配电、电缆敷设、照明系统、防雷接地、配管配线 | 4-6-1(钢管敷设) |
| 第5册 | 建筑智能化工程 | 综合布线、安防、楼宇自控、智能照明、火灾报警联动 | 5-1-1(综合布线) |
| 第6册 | 自动化控制仪表安装工程 | 工业自动化仪表、过程检测与控制装置、仪表盘柜,共10章47节885个子目 | 6-1-1(温度仪表) |
| 第7册 | 通风空调工程 | 风管、风机、空调机组、冷却塔、消声设备系统安装 | 7-2-1(风管制作安装) |
| 第8册 | 工业管道工程 | 高温高压工业管道预制、安装、试压、吹扫(石化/制药行业) | 8-3-28(低压钢管焊接) |
| 第9册 | 消防工程 | 水/气体/泡沫灭火系统、火灾自动报警、消防联动设备 | 9-1-1(自动喷淋管道) |
| 第10册 | 给排水、采暖、燃气工程 | 室内外给排水、散热器、地暖、燃气管道及器具安装 | 10-1-1(室内给水镀锌钢管) |
| 第11册 | 通信设备与线缆安装工程 | 电话、网络、有线电视、移动通信室内覆盖系统 | 11-1-1(电话系统安装) |
| 第12册 | 刷油、防腐蚀、绝热工程 | 金属表面防腐、管道绝热、设备保温施工 | 12-1-1(管道除锈) |
| 第13册 | 措施项目 | 脚手架、高层建筑施工增加费、系统调试费、安全文明施工费等可计量措施项目 | 13-1-1(脚手架搭拆) |
注:原2016版定额已废止。2025版各分册均体现"四新"技术应用导向,支持绿色建造与智能建造。
search_quota.py 支持 volume 参数,先过滤分册再做语义/文本搜索,用法:python search_quota.py "低压焊接" 5 "第8册"search_quota.py v6 优先使用SQLite数据库查询(毫秒级),支持精确/LIKE模糊/FTS5全文三级检索重要:一个清单项目通常需要多条定额配合(如:安装定额 + 除锈定额 + 保温定额 + 主材),组价时必须齐全!
search_quota.py v6 已支持 SQLite 毫秒级查询,优先使用本脚本,避免手写临时Python文件。
ash python search_quota.py --quota-no "AZ-8-3-85"
数据库 ame 字段格式:第8册阀门类定额的 ame 字段为 "公称直径(mm以内) 100",不含"DN"前缀和"调节阀"字样。
| 搜索词 | 结果 | 原因 |
|---|---|---|
| "DN100 调节阀" | ❌ 未找到 | name不含"调节阀","DN100"不匹配(数据库是"100") |
| "低压调节阀" | ❌ 未找到 | chapter="一、低压阀门"不含"调节阀"三字 |
| "100 阀门" | ✅ 找到 | name含"100",chapter含"阀门" |
| "调节阀" | ⚠️ 找到第6册 | 匹配第6册(仪表调节阀),非第8册 |
| "公称直径 100" | ✅ 找到 | 精确匹配name字段 |
`ash
python search_quota.py "100 阀门" 5 "第8册"
python search_quota.py --quota-no "AZ-8-3-85"
python search_quota.py --material "法兰 DN100" python search_quota.py --material "螺栓 M16" `
| 操作 | 耗时 |
|---|---|
| 脚本启动 + SQLite初始化 | ~150ms |
| --quota-no 精确查询 | ~200ms |
| 关键词搜索("100 阀门") | ~220ms |
| 完整查询(主定额+辅定额+2种材料) | ~900ms |
每个定额子目输出必须包含以下字段,缺一不可:
| 字段 | 说明 |
|---|---|
| 定额编号 | 如 AZ-8-3-28(带专业前缀) |
| 分册号 | 第X册 XX工程 |
| 章节号 | 定额手册章节编号 |
| 条款号 | 该子目在章节中的条款编号 |
| 工作内容 | 定额工作内容原文(逐字引用) |
| 计量单位 | 如:m、m²、个、套等 |
| 基价 | 济南市价目表2026版单价 |
无分册号、章节号、条款号、工作内容原文的定额输出视为不合格。
重大变化:依据 GB/T 50500-2024,自2025年11月1日起:
- 取消"规费"科目,社会保险费、住房公积金并入人工费
- 企业管理费中已含相关统筹费用
- 费用结构简化为:人工费 + 管理费 + 利润 + 税金
管理费费率 = 48.08%(以人工费为基数)
利润费率 = 29.15%(以人工费+管理费为基数)
综合费率 = (1 + 48.08%) × (1 + 29.15%) - 1 ≈ 91.25%
税前综合单价 = 基价 × (1 + 91.25%) = 基价 × 1.9125
含税综合单价 = 税前综合单价 × (1 + 9%) = 基价 × 1.9125 × 1.09 ≈ 基价 × 2.0846
税金 = 9%(增值税一般纳税人)
| 时间节点 | 政策内容 |
|---|---|
| 2025年9月1日 | 国有资金投资项目必须执行 GB/T 50500-2024 |
| 2025年11月1日 | 山东省新版费用计算规则与各专业消耗量定额正式施行 |
| 2026年1月1日 | 济南公共资源交易中心全面启用新标准,房屋市政工程按新标准执行 |
⚠️ 过渡期:2026年1月1日前已发标或签约项目可继续沿用2013版清单标准。
触发时机:用户使用自然语言描述工作内容时(如"热泵安装"、"低压管道焊接")
scripts/llm_semantic_match.py:
python scripts/llm_semantic_match.py "热泵机组安装" "第2册热力设备"
references/ 目录对应分册文件中检索匹配定额references/multi_quota_mapping.md 查找该清单的主定额+辅定额标准组合⚠️ 重要:输出定额后必须进入确认节点,等待用户确认后再执行组价!
输出格式示例:
【清单】室内给水镀锌钢管DN50 【主定额】10-1-1(第10册第1章第1条)基价:XX元/10m 【辅定额】 - 8-7-1 管道冲洗消毒(第8册第7章第1条)基价:XX元/100m - 8-5-12 螺纹阀门安装(第8册第5章第12条)基价:XX元/个 【主材】 - 镀锌钢管DN50:清单量×1.02(含2%损耗) - 截止阀DN50:按设计数量
⚠️ 重要:一个清单项目的综合单价 = Σ(所有定额合价) + Σ(所有主材费)
Step 1:识别清单信息
Step 2:查定额组合
references/multi_quota_mapping.md 获取该清单的标准定额组合Step 3:逐项计算定额工程量
unit_conversion.md)Step 4:逐项计算定额合价
主定额合价 = 主定额工程量 × 主定额基价
辅定额1合价 = 辅定额1工程量 × 辅定额1基价
辅定额2合价 = 辅定额2工程量 × 辅定额2基价
...
主材费 = 主材用量 × 主材信息价
Step 5:计算清单综合单价
清单总价 = 主定额合价 + Σ(辅定额合价) + 主材费
税前综合单价 = 清单总价 × (1 + 48.08%) × (1 + 29.15%)
含税综合单价 = 税前综合单价 × (1 + 9%)
Step 6:输出组价明细表 (⭐确认节点2)
assets/报价模板.xlsx 作为基础模板=[@清单工程量]*[@换算系数]=[@定额工程量]*[@基价]=SUMIFS(定额明细表[@定额合价],[@清单编码],[@当前清单编码]) * (1+48.08%)*(1+29.15%)=[@综合单价]*(1+9%)=SUBTOTAL(109,[合价])(筛选时不跳行)Excel模板改进建议: 报价模板.xlsx 需要更新为双Sheet结构(清单汇总 + 定额明细),才能支持一清单对N定额的输出!
cnsdoce/
├── SKILL.md # 本文件(含MIT-0许可证声明)
├── LICENSE # MIT-0许可证(ClawHub强制要求)
├── scripts/
│ ├── search_quota.py # 定额搜索脚本(SQLite优先)
│ ├── llm_semantic_match.py # LLM语义匹配脚本
│ ├── calc_fees.py # 取费计算(2025版规则)
│ ├── match_quota.py # 定额关键词匹配引擎
│ ├── migrate_to_sqlite.py # SQLite迁移脚本
│ └── requirements.txt # Python依赖包
├── references/
│ ├── fee_standard.md # 取费标准(2025版规则)
│ ├── unit_conversion.md # 清单与定额单位换算表
│ ├── multi_quota_mapping.md # 一清单对N定额标准组合
│ └── volume_0[1-9]_*.md # 13分册章节摘要(精简版)
├── index/
│ └── quota.db # SQLite数据库(可选,联系作者获取完整版)
└── assets/
└── 报价模板.xlsx # 带公式的标准报价表Excel模板
⚠️
quota.db完整数据库(含约3.5万条定额+8,441条材料价格)需联系作者获取,或自行导入。
| 分册 | 专业 | 常见定额编号示例 | 备注 |
|---|---|---|---|
| 第4册 | 电气安装 | 4-6-1(钢管敷设 MT20) | 变配电/电缆/照明 |
| 第6册 | 仪表安装 | 6-1-1(温度仪表安装) | 自动化控制仪表 |
| 第7册 | 通风空调 | 7-2-1(风管制作安装) | 风机/空调机组 |
| 第8册 | 工业管道 | 8-3-28(低压钢管焊接 φ57×3.5) | 高温高压管道 |
| 第9册 | 消防安装 | 9-1-1(自动喷淋管道) | 水/气体/泡沫灭火 |
| 第10册 | 给排水 | 10-1-1(室内给水镀锌钢管) | 散热器/地暖/燃气 |
| 第12册 | 刷油绝热 | 12-1-1(管道除锈) | 防腐/保温 |
| 第13册 | 措施项目 | 13-1-1(脚手架搭拆) | 高层增加费/调试费 |
报价表 Excel 必须满足:
=IF(清单单位="m",0.1,IF(...)) 或 VLOOKUP 查表=[@清单工程量]*[@换算系数]=[@基价]*(1+48.08%)*(1+29.15%)=[@税前综合单价]*(1+9%)=[@定额工程量]*[@含税综合单价]=SUBTOTAL(109,[合价])(筛选时不跳行)详细换算表见
references/unit_conversion.md
| 定额单位 | 清单单位 | 换算系数 | 示例 |
|---|---|---|---|
| 10m | m | ×0.1 | 100m管道 → 10个定额单位 |
| 100m | m | ×0.01 | 500m电缆 → 5个定额单位 |
| 10m² | m² | ×0.1 | 200m²风管 → 20个定额单位 |
| 10个 | 个 | ×0.1 | 50个阀门 → 5个定额单位 |
| 100kg | kg | ×0.01 | 300kg支架 → 3个定额单位 |
| 个 | 个 | ×1 | 变压器/空调机组不换算 |
保温体积 = π × (管道外径 + 保温厚度) × 保温厚度 × 管道长度
Excel:=PI()*(D2+δ)*δ*L2
背景:在生成报价表时,需从材料数据库(
quota.db的materials表,或用户导入的完整数据库)匹配未计价材料价格。材料库中规格信息在名称字段中(非规格型号),且计价单位(m/个/t/kg等)可能与定额计量单位(10m/10个/副等)不一致,需要匹配+换算。
当根据定额子目匹配材料时,采用以下多层级打分策略:
| 匹配层级 | 条件 | 分数 |
|---|---|---|
| 精确DN匹配 | 材料名称含DN{目标DN} | +10 |
| 管外径匹配 | 材料名称含D{管外径}或管外径D{管外径} | +9 |
| φ匹配 | 材料名称含φ{管外径}或Φ{管外径} | +8 |
| 尺寸标记匹配 | 名称含目标数字且有D/φ标记 | +5 |
| 来源优先级 | 价格取定表(2026) | +2 |
| 来源优先级 | 济南造价信息2026年03期 | +1 |
| 通用条目加分 | 名称无DN/φ/D等规格标记(通用条目) | +1 |
| 错误DN扣分 | 名称含非目标DN号(如搜索DN250但名称含DN20) | -5 |
DN→管外径映射表:
| DN | 15 | 20 | 25 | 32 | 40 | 50 | 65 | 80 | 100 | 125 | 150 | 200 | 250 | 300 | 350 | 400 | 450 | 500 | 600 | 700 | 800 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| D | 18 | 25 | 32 | 38 | 45 | 57 | 76 | 89 | 108 | 133 | 159 | 219 | 273 | 325 | 377 | 426 | 480 | 530 | 630 | 720 | 820 |
匹配结果标注:
(参考)标记,移除名称中的错误DN号排除关键词:栏杆、扶手、成品安装、底座、盲板等非工程材料条目需过滤
材料库中的计价单位(如m、个、t、kg、片、只)可能与定额计量单位(如10m、10个、副)不同,需统一换算:
可换算的维度(同维度):
| 材料单位 | 定额单位 | 换算系数 | 说明 |
|---|---|---|---|
| 个 | 10个 | ×10 | 管件、阀门 |
| m | 10m | ×10 | 管材按长度计价 |
| 片 | 副 | ×2 | 1副法兰 = 2片 |
| 只 | 副 | ×2 | 1副法兰 = 2只 |
不可换算的维度(跨维度):
| 材料单位 | 定额单位 | 处理方式 |
|---|---|---|
| kg | 10m | ⚠️ 无法换算,需人工确认或另找按米计价的条目 |
| t | 10m / 10个 | ⚠️ 无法换算,标记红色提醒 |
| 个 | 副 | ⚠️ 含义不同(阀门个≠法兰副),需人工确认 |
报价表综合单价Sheet末尾应包含以下列:
| 列 | 列名 | 说明 |
|---|---|---|
| 未计价材料 | 材料名称+规格 | 如"无缝钢管 DN50",参考匹配标注(参考) |
| 未计价材料单价(元) | 数值 | 已换算为定额计量单位的单价,不可换算的红色标注 |
| 计价单位 | 定额计量单位 | 与定额"计量单位"列一致 |
| 来源 | 数据来源 | 价格取定表(2026) 或 济南造价信息2026年03期(含税单价_202603) |
⚠️ 价格溯源:每个未计价材料价格必须标注来源,济南造价信息还需标注具体字段名(
含税单价_202603/含税单价_202602/取定价)
以下是在 Windows PowerShell 5.1 环境下执行定额查询时积累的经验教训,必须严格遵守。
| 操作 | ❌ 错误写法 | ✅ 正确写法 | 说明 |
|---|---|---|---|
| 链式命令 | cd X && python a.py | cd X; python a.py | PS5.1 不支持 &&/|| |
| 条件执行 | A && B | A; if ($?) { B } | 需用 $? 判断上条命令是否成功 |
| 三元运算 | A ? B : C | if (A) { B } else { C } | 三元运算符为 PS7+ 特性 |
| 空合并 | $a ?? $b | if ($null -eq $a) { $b } else { $a } | ?? 为 PS7+ 特性 |
问题:在 PowerShell 中直接用 python -c "含中文的字符串" 执行,中文会乱码或报错。
解决方案:
.py 文件(UTF-8 编码).py 文件# ❌ 错误:中文会乱码
python -c "print('DN100调节阀')"
# ✅ 正确:先写文件再执行
Set-Content -Path temp_query.py -Value "print('DN100调节阀')" -Encoding UTF8
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe temp_query.py
| 场景 | 正确做法 | 原因 |
|---|---|---|
引用 .workbuddy 目录 | 使用绝对路径 C:\Users\Administrator\.workbuddy\... | 相对路径会被 PS 当作模块名解析 |
| Python 可执行文件 | C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe | 避免 PATH 混乱 |
| 脚本路径 | 绝对路径或确保正确 working directory | PowerShell 的 cwd 可能与预期不同 |
查询 quota.db 时,必须先确认列名(用 PRAGMA table_info(表名)),严禁猜测列名。
| 表名 | 正确列名 | 常见错误 |
|---|---|---|
quotas | labor_fee(人工费) | labor_cost ❌ |
quotas | material_fee(材料费) | material_cost ❌ |
quotas | machine_fee(机械费) | machine_cost ❌ |
quotas | base_price(基价) | basePrice ❌ |
materials | 含税单价(中文列名) | tax_included_price ❌ |
不要每次都写临时 Python 文件! search_quota.py v6 已支持命令行直接查询,且优先使用 SQLite 毫秒级查询。
# ✅ 推荐:直接调用脚本(快)
$python = "C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe"
$script = "C:\Users\Administrator\.workbuddy\skills\cnsdoce\scripts\search_quota.py"
& $python $script "DN100 调节阀"
# ❌ 避免:每次都创建临时查询文件(慢)
# 仅在脚本无法满足需求时才写临时 .py 文件
用户提问
↓
直接调用 search_quota.py(命令行参数传入)
↓
(如脚本参数解析不支持中文)→ 写临时 .py 文件查询 SQLite
↓
解析结果 → 输出给用户
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
&& is not recognized | PS5.1 不支持 && | 改用 ; 链接命令 |
labor_cost column not found | 列名错误,应为 labor_fee | PRAGMA table_info(quotas) 查列名 |
| 中文乱码/问号 | python -c 编码问题 | 写 .py 文件,UTF8 编码执行 |
.workbuddy 被当作模块 | 相对路径问题 | 改用绝对路径 |
| FTS5 中文无效 | unicode61 不支持中文分词 | 中文搜索用 LIKE,不用 FTS5 |
以下表述自动触发本技能: