爱(AI)答题是一款基于Vue 3+Spring Boot+Redis+ChatGLM+RxJava+SSE的AI答题应用平台。
用户可以基于AI快速制作并发布答题应用,支持检索、分享、在线答题并基于AI得到回答总结;
管理员可以集中管理和审核应用。
目录
MBTI性格测试小程序
一、页面模块
1)主页:
2)答题页面:
3)查看结果页面:
二、实现方案介绍
核心组成部分:题目、用户答案、评分规则
1、题目结构
一道题目它应该是以Json结构形式呈现,选项为数组,例如:
[
{
"title":"你通常更喜欢",
"options":[
{
"result":"I",
"value":"独自工作",
"key":"A"
},
{
"result":"E",
"value":"与他人合作",
"key":"B"
}
]
}
]
相较于直接用key-value结构,Json结构更易于理解和拓展;缺点就是占用空间。
2、用户答案结构
用户填写完答案后怎么将其传递给判题逻辑怎么传递给后端。
用户提交答案的时候,仅需传递一个数组,数组内是选项:["A"],按数组顺序匹配对应的题目。
["A","A","B","B"]
优点:不用再完整传递题目的结构,节省传输体积,提高性能。
3、评分规则
判题思路
第一题判断 I or E,第二题判断 J or P,第三题判断 T or F,第四题判断 S or N。
按照这个思路,我们可以统计题目中所有的偏好,比如答题一共选了10个I,2个E,很明显10大于2,因此我们得出他是 I 人,同理判断是S/N、T/F和J/P
所以我们出题的时候,给每个选择的答案对应设置一个属性。
• 第一题 A 对应 I, B 对应 E
• 第二题 A 对应 E , B 对应丨
• 第三题 A 对应 s, B 对应 N
• 第四题 A 对应 T , B 对应 F
• 第五题 A 对应 p, B 对应 J
如果用户选择了[A,B,A,A,A],可以算出用户有两个I,一个S,一个T,一个P,很明显他是ISTP人格。
评分结果计算原理
1)首先要有一个题目评分结果集合,这里预先创建了很多结果,包括了MBTI的所有16种角色。
• resultName: ISTJ
• resultDesc :忠诚可靠,被公认为务实,注重细节。
• resultlcon: 预留字段,如果想界面好看点,可以给 result 设定图片
• resuItProp : [I,S,T,J]
题目评分结果对应的 JSON 结构如下:
[
{
"resultProp":[
"I",
"S",
"T",
"J"
],
"resultDesc":"忠诚可靠,被公认为务实,注重细节。",
"resultPicture":"icon_url_istj",
"resultName":"ISTJ(物流师)"
},
{
"resultProp":[
"I",
"S",
"F",
"J"
],
"resultDesc":"善良贴心,以同情心和责任心为特点。",
"resultPicture":"icon_url_isfj",
"resultName":"ISFJ(守护者)"
}
]
2)怎么根据每道题目的选项计算出结果呢?
每个结果有一个 resultprop 字段,是一个元素不重复的数组(属性集合),里面的内容和题目选项的 result 字段匹配。
[
{
"title":"你通常更喜欢",
"options":[
{
"result":"I",
"value":"独自工作",
"key":"A"
},
{
"result":"E",
"value":"与他人合作",
"key":"B"
}
]
}
]
此时用户第一题选了 A, 对应的属性如果是I,那么我们遍历这 16 种结果,然后判断角色对应的 resultprop 里面是否包含I,如果包含则对应的角色就+ 1 分,不包含则不得分。最终遍历完所有题目后,我们就能知道这 16 种结果中,哪个角色得分最高,它就是最终的评分结果了。
三、MBTI 小程序 Demo 数据
可以使用AI生成。
1、题目列表
每个选项包含了对应的结果,questions.json:
[
{
"options": [
{
"result": "I",
"value": "独自工作",
"key": "A"
},
{
"result": "E",
"value": "与他人合作",
"key": "B"
}
],
"title": "你通常更喜欢"
},
{
"options": [
{
"result": "J",
"value": "喜欢有明确的计划",
"key": "A"
},
{
"result": "P",
"value": "更愿意随机应变",
"key": "B"
}
],
"title": "当安排活动时"
},
{
"options": [
{
"result": "T",
"value": "认为应该严格遵守",
"key": "A"
},
{
"result": "F",
"value": "认为应灵活运用",
"key": "B"
}
],
"title": "你如何看待规则"
},
{
"options": [
{
"result": "E",
"value": "经常是说话的人",
"key": "A"
},
{
"result": "I",
"value": "更倾向于倾听",
"key": "B"
}
],
"title": "在社交场合中"
},
{
"options": [
{
"result": "J",
"value": "先研究再行动",
"key": "A"
},
{
"result": "P",
"value": "边做边学习",
"key": "B"
}
],
"title": "面对新的挑战"
},
{
"options": [
{
"result": "S",
"value": "注重细节和事实",
"key": "A"
},
{
"result": "N",
"value": "注重概念和想象",
"key": "B"
}
],
"title": "在日常生活中"
},
{
"options": [
{
"result": "T",
"value": "更多基于逻辑分析",
"key": "A"
},
{
"result": "F",
"value": "更多基于个人情感",
"key": "B"
}
],
"title": "做决定时"
},
{
"options": [
{
"result": "S",
"value": "喜欢有结构和常规",
"key": "A"
},
{
"result": "N",
"value": "喜欢自由和灵活性",
"key": "B"
}
],
"title": "对于日常安排"
},
{
"options": [
{
"result": "P",
"value": "首先考虑可能性",
"key": "A"
},
{
"result": "J",
"value": "首先考虑后果",
"key": "B"
}
],
"title": "当遇到问题时"
},
{
"options": [
{
"result": "T",
"value": "时间是一种宝贵的资源",
"key": "A"
},
{
"result": "F",
"value": "时间是相对灵活的概念",
"key": "B"
}
],
"title": "你如何看待时间"
}
]
2、题目结果表
16种结果
question_results.json:
[
{
"resultProp": [
"I",
"S",
"T",
"J"
],
"resultDesc": "忠诚可靠,被公认为务实,注重细节。",
"resultPicture": "icon_url_istj",
"resultName": "ISTJ(物流师)"
},
{
"resultProp": [
"I",
"S",
"F",
"J"
],
"resultDesc": "善良贴心,以同情心和责任为特点。",
"resultPicture": "icon_url_isfj",
"resultName": "ISFJ(守护者)"
},
{
"resultProp": [
"I",
"N",
"F",
"J"
],
"resultDesc": "理想主义者,有着深刻的洞察力,善于理解他人。",
"resultPicture": "icon_url_infj",
"resultName": "INFJ(占有者)"
},
{
"resultProp": [
"I",
"N",
"T",
"J"
],
"resultDesc": "独立思考者,善于规划和实现目标,理性而果断。",
"resultPicture": "icon_url_intj",
"resultName": "INTJ(设计师)"
},
{
"resultProp": [
"I",
"S",
"T",
"P"
],
"resultDesc": "冷静自持,善于解决问题,擅长实践技能。",
"resultPicture": "icon_url_istp",
"resultName": "ISTP(运动员)"
},
{
"resultProp": [
"I",
"S",
"F",
"P"
],
"resultDesc": "具有艺术感和敏感性,珍视个人空间和自由。",
"resultPicture": "icon_url_isfp",
"resultName": "ISFP(艺术家)"
},
{
"resultProp": [
"I",
"N",
"F",
"P"
],
"resultDesc": "理想主义者,富有创造力,以同情心和理解他人著称。",
"resultPicture": "icon_url_infp",
"resultName": "INFP(治愈者)"
},
{
"resultProp": [
"I",
"N",
"T",
"P"
],
"resultDesc": "思维清晰,探索精神,独立思考且理性。",
"resultPicture": "icon_url_intp",
"resultName": "INTP(学者)"
},
{
"resultProp": [
"E",
"S",
"T",
"P"
],
"resultDesc": "敢于冒险,乐于冒险,思维敏捷,行动果断。",
"resultPicture": "icon_url_estp",
"resultName": "ESTP(拓荒者)"
},
{
"resultProp": [
"E",
"S",
"F",
&