微信接龙解析 Skill
触发条件
当用户粘贴一段包含「#接龙」标记的群聊文本,并要求解析、整理、统计或提取其中的订单信息时,调用本 Skill。
接龙文本的通用结构
一个典型的接龙消息由两大段落组成:
段落一:商品列表(上方)
#接龙
[可选:宣传文案/到货时间]
1️⃣ 商品全名A
[可选:一行或多行描述/卖点]
💰XX元/单位
2️⃣ 商品全名B
[可选:描述]
💰XX元/单位
...
- 商品按序号(1️⃣ 2️⃣ 3️⃣ / 1. 2. 3. / 1️⃣ 2️⃣ 3️⃣)逐条排列
- 每个商品至少包含:序号、商品全名、价格行
- 商品全名和价格行之间可能夹有描述行
- 价格行格式多样,详见下节
段落二:接龙订单(下方)
[序号]. [昵称]([房间号]) [商品简称][数量] [商品简称][数量] ...
- 每个参与者一行,以数字序号开头(有序列表)
- 昵称可能包含也可不包含房间号(格式:
数字-数字或(数字-数字)) - 每行包含一个或多个「商品简称 + 数量」对
价格行格式
常见格式:
| 格式 | 示例 |
|---|---|
💰XX元/单位 | 💰29.9元/1件(10个大果)、💰7元/袋 |
💰XX🉐单位 | 💰28.9🉐3斤、💰10🉐5个 |
💰XX元/个(重量) | 💰25元/个(7-8斤/个) |
| 混合 | 💰9.9元/4袋(100g/袋)、💰65🉐2斤/盒 |
解析要点:
- 价格行一定包含
💰符号和数字 - 价格行可能包含优惠价标记如
(尝鲜价)(活动价)等,这些不影响商品识别
商品简称匹配方法论(核心难点)
这是整个解析过程中最关键的环节。简称→全名的匹配不能靠预设映射表,而应该使用以下推理方法:
第一步:从商品列表中提取「关键词指纹」
对每个商品,从全名中提取一组可检索的特征词:
| 商品全名 | 特征词(按区分度排序) |
|---|---|
| 新西兰进口红玫瑰苹果 | 苹果、红玫瑰、玫瑰苹果、新西兰 |
| 自然熟青红脆李 | 李、脆李、青红脆、青红脆李 |
| 高端美都麒麟瓜 | 西瓜、麒麟瓜、美都、麒麟 |
| 黑羽绿壳初生土鸡蛋 | 鸡蛋、土鸡蛋、初生蛋、绿壳 |
| 泰国猫山王纯榴莲肉 | 榴莲、猫山王、榴莲肉 |
| 手工蜂蜜小面包 | 面包、蜂蜜面包、小面包 |
| 澳洲宝石红玫瑰李 | 李、玫瑰李、红玫瑰李、澳洲 |
| 岳阳网红大馒头 | 馒头、大馒头、岳阳馒头 |
提取规则:
- 去掉产地前缀(新西兰、新疆、海南、泰国等)、去掉修饰词(精品、高端、纯甜、纯等)
- 保留最核心的 2-4 个字作为搜索关键词
- 当一个特征词能匹配到多个商品时,需要更多特征词来区分
第二步:切割参与者的订单文本
参与者行中,商品简称和数量通常紧贴,没有明显分隔符。切割策略:
-
按商品特征词切割:将订单文本按参与者的商品简称进行分割
- 输入:
苹果1葡萄2李子1西瓜1鸡蛋2酸奶1 - 方法:扫描每个已知商品的特征词,找到匹配的位置
- 输出:
苹果→1,葡萄→2,李子→1,西瓜→1,鸡蛋→2,酸奶→1
- 输入:
-
数量格式归一化:
原始写法 归一化数量 苹果1苹果 × 1 李子2份李子 × 2 西瓜一个西瓜 × 1 西瓜1个西瓜 × 1 馒头2个馒头 × 2 2个馒头馒头 × 2 买2个馒头馒头 × 2 4个(无商品名)见下方「唯一商品简写」规则 -
唯一商品简写规则:
- 如果某一行只有数量没有商品名(如蓝本四中仅售一种商品"馒头",参与者写"4个"、"2个")
- 检查整个接龙是否只有一种商品 → 如果是,默认该商品
- 如果接龙有多种商品但这个参与者只写了数量 → 标记为"商品名缺失,请检查原文"
-
错别字/重复字容错:
香香干1份干1份→ 识别为香干1份 香干1份凤凰李1份蜂糖李1份→ 按特征词切分为两个商品- 规则:优先按特征词切割,重叠部分重复利用
第三步:模糊匹配
对于参与者的商品简称,找出最匹配的商品全名:
商品简称 "李子" → 检查所有含"李"的商品:
- 自然熟青红脆李 → 匹配(含"李"、"脆李")
- 澳洲宝石红玫瑰李 → 匹配(含"李"、"玫瑰李")
- 新疆伊犁原味厚酸奶 → 不匹配
→ 如果多个匹配,进一步看简称中是否有更多特征词:
"李子" 两个匹配,需要看上下文或排序号
"玫瑰李" → 澳洲宝石红玫瑰李(明确匹配)
"凤凰李" → 商品列表中找含"凤凰李"的
"脆蜜梨/梨子" → 高山脆蜜梨(含"梨"、"脆蜜")
匹配优先级(从高到低):
- 精确子串包含:简称是整个商品名的一部分(
红玫瑰苹果←苹果) - 核心词匹配:简称匹配商品名的核心词(
李子←青红脆李、凤凰李) - 同义词/类别词:
梨子←脆蜜梨、西瓜←麒麟瓜、鸡蛋←土鸡蛋 - 上下文消歧:当唯一匹配无法确定时,参考:
- 商品序号(参与者的购买通常集中在靠前的热门商品)
- 价格区间(贵的商品订单量通常较小)
- 是否为复团品/活动品(通常有较多订单)
接龙中的特殊标注
"截单"(停止接单)
- 原文中可能出现如:
西瓜、芒果、酸奶、葡萄截单‼️ - 这些商品的订单已截止,但历史订单仍需纳入统计
- 建议在输出中标注
[已截单]
一人多次接龙
- 同一昵称可能出现多次(如蓝本二中"刘支援"出现在第11行和第13行)
- 保留多行,不合并,按原文顺序逐条列出
- 每条记录独立编号、独立展示该次下单内容
二楼式接龙
- 第一个人通常是"团长文文"或类似角色,其订单是预先配置的示例
- 也可以作为一个有效订单计入统计
输出格式
唯一输出:按人接龙明细(透视表)
每条接龙记录占一行,每个商品单独一列。不需要商品汇总表。
- 列名格式:
商品简称(单价)— 单价取自价格行的完整表述,如凤凰李(28.9/3斤) - 最后一列:订单总价 — 该行各商品数量 × 对应单价的加总
- 空白表示该条未订购该商品
以蓝本二为例:
| 行号 | 昵称 | 房号 | 凤凰李(28.9/3斤) | 麒麟瓜(25/个) | 紫苏桃子姜(18/桶) | 绿豆饼(10/份) | 香干(12.9/份) | 订单总价 |
|---|---|---|---|---|---|---|---|---|
| 1 | 团长文文 | 1-1002 | 2份 | - | 1 | 1 | 1 | 99.7元 |
| 2 | 4-501 | - | - | 1个 | - | - | - | 25元 |
| 11 | 刘支援 | - | - | - | - | 1份 | 2份 | 35.8元 |
| 13 | 刘支援 | - | - | - | - | 1份 | 1份 | 22.9元 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
列名规则:使用商品简称(凤凰李、麒麟瓜),后面括号标注单价原文 (28.9/3斤)。
总价计算规则:
- 从价格行提取「一份/一个/一盒」对应的金额作为单价
- 每件商品小计 = 订购数量 × 对应单价
- 订单总价 = 该行所有商品小计之和
- 数量统一归一化为数字("1份"→1,"2个"→2)
团长文文订单:凤凰李2份(2×28.9) + 紫苏桃子1(18) + 绿豆饼1(10) + 香干1(12.9) = 99.7元
腾讯文档落库(当 tencent-docs 连接器可用时)
解析完成后,除了在对话中展示透视表外,还应将结果写入腾讯文档在线表格,并返回文档链接。
建表流程
- 创建表格:使用腾讯文档 MCP 创建一个新的在线表格,文件命名格式
接龙_2026-07-08- 使用当天日期,格式固定为
YYYY-MM-DD - 示例:
接龙_2026-07-08 - 如果当天已有同名文档,则追加到新 sheet 而非覆盖
- 使用当天日期,格式固定为
- Sheet 1:明细透视表(按人接龙明细)
- 表头行(第1行):
- 第1列:行号
- 第2列:昵称
- 第3列:房号
- 第4列起:每组商品单独一列,列名用
商品简称(单价原文),如凤凰李(23.9/3斤)、榴莲(65/2斤) - 末尾列:订单总价
- 数据行(第2行起):
- 每条接龙记录一行,轮空商品填 0 或留空
- 订单总价填入数字(不加"元"字样,便于合计)
- 合计行(末尾):
- 添加
合计行,每列用 SUM 公式求和 - 订单总价列也做 SUM 合计
- 添加
- 表头行(第1行):
- Sheet 2:商品订单汇总
- 表头行:序号 | 商品名 | 单价 | 总销量 | 销售额 | 订单明细
- 数据行:每个商品一行
- 总销量:汇总所有参与人的订购数量之和
- 销售额:总销量 × 单价
- 合计行:末尾加合计行,汇总总销售额
- 返回链接:获取文档的 URL 并返回给用户
格式约定
- 标题行加粗
- 数字列右对齐,文本列左对齐
- 商品数量列保留原文单位(份/个/斤等)便于核对,或直接用纯数字(优先保留原单位)
- 金额列(订单总价、销售额)用纯数字,不加单位
示例表格结构
Sheet 1:明细透视表(以蓝本五为例)
| 行号 | 昵称 | 房号 | 甜瓜(25/4斤) | 榴莲(65/2斤) | 柚子(19.9/个) | 蟠桃(18.9/2斤) | 凤凰李(23.9/3斤) | 蜂蜜面包(10/10个) | 牛筋干(12.9/1斤) | 馒头(7/2个) | 订单总价 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 团长文文 | 1-1002 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 3 | 149.8 |
| 2 | 2-1004 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 130 | |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 合计 | =SUM(L2:L18) |
Sheet 2:商品订单汇总
| 序号 | 商品名 | 单价 | 总销量 | 销售额 | 订单明细 |
|---|---|---|---|---|---|
| 1 | 蜜罐甜瓜(25/4斤) | 25元/4斤 | 1份 | 25 | 团长文文×1 |
| 2 | 猫山王纯榴莲肉(65/2斤) | 65元/2斤/盒 | 9盒 | 585 | 团长文文×1, 2-1004×2, 柒柒柒吖×1, ... |
| 3 | 翡翠香柚(19.9/个) | 19.9元/个 | 2个 | 39.8 | 团长文文×1, 一期公寓1916×1 |
| ... | ... | ... | ... | ... | ... |
| 总计 | =SUM(D2:D...) |
特殊标注
- 截单商品:在对应列的标题行追加
[截单]标记,如西瓜(25/个)[截单] - 错别字容错:在腾讯文档中还原为正确商品名,但追加备注列或批注标注原文
配合 ClawBot 微信远程使用
当通过微信 ClawBot 发送接龙文本时,执行流程为:
- 解析接龙文本
- 在对话中输出透视表
- 创建腾讯文档在线表格并写入数据(明细 + 汇总 两个 Sheet)
- 返回文档链接 + 简要汇总(商品数、记录数、总金额)
- 将表截图(如有条件)或直接返回链接供手机端查看
常见边界情况对照表
| 场景 | 原文示例 | 处理方式 |
|---|---|---|
| 仅有一种商品 | 全篇只有馒头,参与者写"4个" | 默认商品为馒头 |
| 商品名重复出现 | 同一昵称两次下单 | 按原文保留多行,不合并 |
| 歧义简称 | "李子"同时匹配凤凰李/玫瑰李/蜂糖李 | 检查昵称排序、历史购买倾向、价格行上下文推断,无法确定时同时标注 |
| 房间号格式 | 1-1002、(1-1002)、一期1-1001、一期公寓1916 | 优先提取数字-数字格式;无房间号留空 |
| 数字紧贴无分隔 | 李子2份西瓜1个凤凰李1份 | 用特征词表进行贪心匹配分割 |
| "截单"标注 | 西瓜、芒果、酸奶、葡萄截单‼️ | 在该商品列追加标注[截单],已接的订单照常计入统计和总价 |
| 单行多数量同商品 | 李子2份蜂糖李1斤 | 按商品名+数量对的顺序逐个解析 |
| 数量用中文数字 | 一个、一份、两个 | 统一转为阿拉伯数字 |
| 团长示范单 | 第一条总是"团长文文" | 正常作为一个有效订单处理 |
使用示例
用户输入:
帮我解析这个接龙: [粘贴接龙全文]
你的回复结构:
- 先简要描述识别到的商品数量和参与记录数
- 在对话中输出按人透视表(带单价列名和订单总价)
- 创建腾讯文档在线表格(命名
接龙_YYYY-MM-DD),写入两个 Sheet:- Sheet 1「明细透视表」:逐条接龙记录 + 订单总价
- Sheet 2「商品订单汇总」:按商品统计销量 + 销售额 + 订单明细
- 返回腾讯文档链接
- 标注任何特殊发现(截单、商品名不在列表中、错别字容错、歧义匹配等)
- 如有歧义商品名匹配,说明你的推理过程
注:如果 tencent-docs 连接器未连接或不可用,则跳过建表步骤,仅输出对话中的透视表。
评论
加载中…