SBTI 人格测试 Skill
技能说明
把 https://sbti.unun.dev/ 的选择题转成 IM 对话形式,逐条提问,最终按网页原版逻辑输出人格结果,并展示本地图片。
仅供娱乐,不作任何心理学、医学或人生判断依据。
文件结构
sbti-jacob/
├── SKILL.md ← 本文件
├── data/
│ └── sbti_data.json ← 所有题目、选项、人格库、评分逻辑数据
├── scripts/
│ └── score_sbti.py ← 计算最终人格的 Python 脚本
└── *.png / *.jpg ← 27 种人格的本地图片
交互流程
1. 开场白
先发一条开场消息:
🎭 欢迎来到 SBTI 人格测试!
本测试共 31 题(特殊条件下 32 题),分 3 轮进行:
• 第 1 轮:10 题
• 第 2 轮:11 题
• 第 3 轮:10 题(特殊情况下 +1 题)
每轮集中作答,答完一轮再进下一轮。仅供娱乐,请勿当成诊断书。准备好了吗?
然后等用户确认,确认后从第 1 题开始。
2. 分批提问规则
测试分 3 轮进行,每轮一次性发出当轮的所有题目,用户集中作答后再进入下一轮。
轮次划分(共 31 题,含 drink_gate_q1):
| 轮次 | 题目编号(在完整序列中) | 题数 |
|------|--------------------------|------|
| 第 1 轮 | 正式题 q1~q10 | 10 题 |
| 第 2 轮 | 正式题 q11~q20 + drink_gate_q1(插在本轮末尾) | 11 题 |
| 第 3 轮 | 正式题 q21~q30 | 10 题;若 drink_gate_q1 答案值为 3 则本轮末追加 drink_gate_q2 |
注:正式题顺序固定(q1~q30),
drink_gate_q1固定放在第 2 轮末尾,drink_gate_q2(如需)放在第 3 轮末尾。
每轮格式:
先发一条提示,例如:
📋 第 1 轮(共 3 轮)—— 第 1~10 题,请逐题作答:
然后将本轮所有题目连续发出,每道题格式如下:
第 3 题
我很清楚真正的自己是什么样的
A. 不认同
B. 中立
C. 认同
全部题目发完后,提示用户:
请按题号顺序回复,例如:
1-A 2-C 3-B ...
或逐题回复也可以。
收到回答后:
- 解析每道题的选项,映射为对应
value(数字)。 - 如有未作答或无法识别的题,在本轮内追问补全,不进入下一轮。
- 全部答对后,发送轮次小结(已完成 X/31 题),然后继续下一轮。
选项识别:
- 用户回复 A/B/C/D(大小写不敏感,
a/A均可)或直接输入选项文字,均视为有效。 - 批量回复格式如
1-a 2-c 3-b同样有效。 - 如果回复无法识别,单独追问该题。
3. 收集答案
记录每道题的 id 和用户选择的 value(数字),形成一个 JSON 对象,例如:
{"q1": 2, "q2": 3, "q3": 2, ..., "drink_gate_q1": 1}
4. 计算结果
所有题目作答完毕后,调用评分脚本:
python3 "$(dirname "$0")/../scripts/score_sbti.py" --answers-json '{"q1": 2, "q2": 3, ..., "drink_gate_q1": 1}'
脚本输出一个 JSON,包含:
finalType:最终人格(含code、cn、intro、desc)modeKicker:标题标注(如"你的主类型" / "隐藏人格已激活")badge:匹配徽章文字sub:副标注top3:匹配度前三的普通人格dimensions:15 个维度的评分和说明imagePath:本地图片绝对路径(如果存在)
5. 展示结果
按以下格式输出(内容完全使用脚本返回的原文,不要改写):
━━━━━━━━━━━━━━━━━━━━━━━━━
【{modeKicker}】
{code}({cn})
{badge}
{sub}
💬 {intro}
{desc}
━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Top 3 匹配:
1. {top3[0].code}({top3[0].cn})—— {top3[0].similarity}%
2. {top3[1].code}({top3[1].cn})—— {top3[1].similarity}%
3. {top3[2].code}({top3[2].cn})—— {top3[2].similarity}%
🔢 15 维度评分:
(逐条列出 dimensionName:Level / 分数 —— 说明)
🖼️ 人格海报:
(若 imagePath 非空,使用 SendImage 或等效工具直接将本地图片发送到 IM,不要输出路径文字)
⚠️ 本测试仅供娱乐,请勿当成诊断书、相亲标准或人生判决书。
注意事项
- 不要改写题目文字、选项文字、人格描述,原文照搬。
- 图片发送:脚本返回的
imagePath是绝对路径,使用SendImage(或平台等效的发图工具)将图片直接发送到 IM,不要把路径作为文字输出给用户。 - DRUNK 人格:若
drink_gate_q2的回答值为2,最终人格为 DRUNK(隐藏人格),modeKicker= "隐藏人格已激活"。 - HHHH 兜底:若最高相似度 < 60%,最终人格为 HHHH(傻乐者),
modeKicker= "系统强制兜底"。 - 评分规则(脚本内已实现,此处仅供参考):
- 每个维度两题,选项 value 相加
- 总分 ≤ 3 → L,= 4 → M,≥ 5 → H
- 与 25 种正常人格的 15 维 pattern 计算欧氏距离,取最近者
Scan to contact