当前位置: 首页 > news >正文

实用指南:MetaChat产品级创新互动设计 知识问答闯关( 出题/判题 + 成就系统)

产品地址:DevUI
体验地址:MateChat
使用说明:MateChat - 轻松构建你的AI应用

前言

区别于传统问答工具,“知识问答闯关” 是基于 MateChat - 轻松构建你的AI应用 构建的游戏化学习系统。核心通过「出题 / 判题插件」与「成就激励插件」的深度集成,将零散的知识问答转化为 “关卡进阶 + 即时反馈 + 成长可视化” 的闯关体验,既借助 MateChat 原生的可读化交互呈现答题逻辑,又通过插件化扩展实现 “从知识点测评到能力认证” 的全链路覆盖,适配 K12 学科巩固、职业技能考核、企业内训闯关等多元场景,让学习从 “被动应答” 变为 “主动挑战”。

案例代码仓库地址:AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台

在这里插入图片描述

在这里插入图片描述

什么是MateChat

在这里插入图片描述
在这里插入图片描述

MateChat是一个面向研发和知识协作的聊天 UI/交互套件,提供开箱即用的聊天界面、消息渲染、思考内容(reasoning)展示、历史记录等能力。其核心价值是将大模型的问答过程以可读、可操作的界面呈现出来,并支持插件化扩展(题库、工具、面板)。
官方网站:MateChat

什么是 DevUI

在这里插入图片描述

DevUI是华为云的企业级前端设计体系与组件库,提供规范化的主题变量(颜色、圆角、阴影、字号等)和一致的交互组件(按钮、输入、选择器、布局等)。本项目中所有卡片、进度条、气泡等都遵循 DevUI 的主题变量和样式规范,保证整站风格统一。
官方网站:DevUI

怎么接入 AI(OpenAI 兼容层)

在这里插入图片描述

Deepseek apikey获取:DeepSeek

项目内包含OpenAI兼容实现,支持通过配置不同的提供方(如 SiliconFlow/DeepSeek/Qwen)来进行对话。

关键实现(src/models/openai.ts):

// src/models/openai.ts(节选)
export class OpenAiService implements LLMService {private client: OpenAI;private currentModel = useChatModelStore().currentModel;constructor(providerKey: string) {const defaultModelConfig = LLM_MODELS.find(m => m.providerKey === providerKey);const custom = useChatModelStore().customAPIKey.find(item => providerKey === item.providerKey);this.client = new OpenAI({baseURL: defaultModelConfig?.apiPath,apiKey: custom?.apiKey ? custom.apiKey : defaultModelConfig?.apiKey,dangerouslyAllowBrowser: true,});}chat(request: ChatRequest): Promise {return MODEL_CONFIGS.stream ? this.chatStream(request) : this.chatBatch(request);}async chatStream(request: ChatRequest): Promise {// 流式返回,增量拼接 reasoning 与 content,并回调 onMessage/onComplete}
}

接入步骤:

src/models/config.ts 中配置提供方 apiPathapiKey,或通过界面输入自定义 API Key

选择模型后,将 MODEL_CONFIGS.enableMock=false 切换为真实调用(默认演示为 mock

使用 OpenAiService.chat() 进行批量或流式对话(支持展示 reasoning_content

注:当前演示版以本地题库和确定性判题为主,用于保证“每题必须明确对/错”的体验。切换为真实 AI 后,仍可保持由本地标准答案进行判分,以确保准确性。

闯关玩法与要求

  • 题目以助手消息推送到聊天流;用户在输入框回答,随后助手判定“回答正确/错误”,附正确答案与解析、并更新积分

  • 连胜与积分到达阈值触发成就;成绩可在“成就”面板查看

在这里插入图片描述

  • 支持通过对话表达意图(如“做 Vue 困难题”),自动解析方向/难度并开始闯关

  • 判题后自动进入下一题,顶部进度条与数值带动效(缩放/脉冲)

关键代码(节选)

在这里插入图片描述

挑战状态管理与判题(src/store/challenge-store.ts

// 初始化状态
const active = ref(false);
const questions = ref(QUESTIONS);
const currentIndex = ref(0);
const score = ref(0);
const streak = ref(0);
const achievements = ref([]);
const awaitingAnswer = ref(false);
// 开始/结束/下一题
const start = () => {active.value = true;reset();initQuestions();awaitingAnswer.value = true;useChatStatusStore().startChat = true;presentQuestionMessage();save();
};
const next = () => {if (currentIndex.value < questions.value.length - 1) {currentIndex.value++;awaitingAnswer.value = true;presentQuestionMessage();save();} else {awaitingAnswer.value = false;save();}
};
// 判题与积分/连胜/成就
const submitAnswer = (val: string) => {if (!active.value || !awaitingAnswer.value) return;const q = currentQuestion.value;const correct = isCorrect(val, q);const chatMessageStore = useChatMessageStore();if (correct) { score.value += q.points; streak.value += 1; } else { streak.value = 0; }checkAchievements();const summary = correct? `回答正确 ✅ +${q.points}分\n题目:${q.title}\n解析:${q.explanation}\n当前积分:${score.value}`: `回答错误 ❌\n题目:${q.title}\n正确答案:${q.answers.join(' / ')}\n解析:${q.explanation}\n当前积分:${score.value}`;chatMessageStore.ask(val, summary);awaitingAnswer.value = false;save();next(); // 自动进入下一题,刷新进度
};
// 出题消息推送到聊天流
const presentQuestionMessage = () => {const chatMessageStore = useChatMessageStore();const q = currentQuestion.value;const choicesText = q.choices?.length ? q.choices.map(c => `${c.key}. ${c.text}`).join('\n') : '';const content = `第${currentIndex.value + 1}题:${q.title}\n${q.content}${choicesText ? '\n' + choicesText : ''}`;chatMessageStore.messages.push({ from: 'assistant', content, reasoning_content: '', avatarPosition: 'side-left', avatarConfig: { ...aiModelAvatar }, loading: false, complete: true });chatMessageStore.messageChangeCount++;
};
// 题库筛选(方向/难度/题量)
const setCategories = (arr: string[]) => { selectedCategories.value = arr || []; };
const setLevels = (arr: Array<'easy'|'medium'|'hard'>|string[]) => { selectedLevels.value = (arr as any) || []; };
const setQuestionCount = (n?: number) => { questionCount.value = n; };
const initQuestions = () => { /* 根据筛选生成题序列 */ };

对话渲染(左右气泡 + 思考折叠)(src/view/challenge/chat-feed.vue

顶部统计与进度(带动效)(src/view/challenge/challenge-layout.vue

在这里插入图片描述

积分{{ challenge.score }}
连胜{{ challenge.streak }}
{{ challenge.currentIndex + 1 }}/{{ challenge.questions.length }}

输入意图解析(对话式选择方向/难度)(src/view/input/input.vue

const detectPrefs = (text: string) => {const lowers = text.toLowerCase();const cats = QUESTION_CATEGORIES.filter(c => lowers.includes(c.toLowerCase()));const lvls: string[] = [];if (/(困难|hard)/i.test(text)) lvls.push('hard');if (/(中等|medium)/i.test(text)) lvls.push('medium');if (/(简单|easy)/i.test(text)) lvls.push('easy');return { cats, lvls };
};
const onSubmit = (val: string) => {if (!val) return;if (challengeStore.active && challengeStore.awaitingAnswer) {challengeStore.submitAnswer(val);} else {const prefs = detectPrefs(val);if (prefs.cats.length || prefs.lvls.length) {challengeStore.setCategories?.(prefs.cats);challengeStore.setLevels?.(prefs.lvls);challengeStore.start();}chatMessageStore.ask(val);}
};

总结

通过 DevUI 的统一样式和 MateChat的聊天交互基础,结合本地题库与确定性判题,项目实现了“知识问答闯关”的高确定性体验。若需要切换到真实 AI,对接 OpenAiService 并保持本地标准答案判分即可在保证准确性的同时提升题面/解析的丰富度。

http://www.rkmt.cn/news/142135.html

相关文章:

  • Java 扫雷小游戏:从源代码到玩法解析,小白做游戏,收藏这篇就够了
  • 谐波检测之瞬时无功功率理论 ip-iq 检测法:从原理到实践
  • 【Mac+M系列芯片适配指南】:Open-AutoGLM本地部署性能优化的7个核心技巧
  • 商家必看!权威盘点2025年12月国内五大值得信赖的淘宝天猫代运营公司 - 深度智识库
  • # 西南AI培训排名2025|真术相成TOP1!应届生/转行党避坑指南
  • 项目经理该不该懂技术?吵了10年没结果
  • Web攻防-支付逻辑篇篡改属性值并发签约越权盗用算法溢出替换对冲
  • # 一杯葆阳植物饮:把阳气养进日常,告别疲惫感
  • Open-AutoGLM ollama使用避坑指南:90%新手都会犯的3个错误
  • 替沃扎尼(Fotivda)治疗晚期肾癌的疗效与安全性全解析
  • C#:记录日志
  • 2025年12月水泥地面铣刨机,金刚砂地面铣刨机,无机磨石地面铣刨机公司推荐:路面铣刨设备行业测评与选择指南 - 品牌鉴赏师
  • 【Matlab】元胞传输模型应急疏散研究
  • IPD变更管理实战:变更审计与配置-需求-测试三线追溯怎么搭
  • 【Matlab】ARIMA预测模型
  • # DeepSeek GEO优化实操QA+远见行官网解决方案
  • 表达式求值(二):语法分析
  • # 2025西南AI科研大模型微调培训机构TOP5:真术相成领跑本土学术赋能
  • 从手工到全自动化:一个中型项目测试流水线在2025年的演进之路
  • 【智谱清言Open-AutoGLM插件深度解析】:揭秘AI自动化生成核心技术与落地实践
  • 跳出品牌迷思:钻戒买什么品牌的比较好?2025理性决策指南 - 博客万
  • 2025年12月大型地坪研磨机,地坪研磨机,方形地坪研磨机公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • # 成都企业找设计推广不用愁!这家30年老牌机构,全场景需求一站式搞定
  • 农村污水站点信息化运维管理平台方案
  • 详细介绍:(第七篇)Spring AI 基础入门总结:四层技术栈全景图 + 三大坑根治方案 + RAG 进阶预告
  • 一类和区间有关的贪心问题
  • 【课程设计/毕业设计】基于springboot的健身服务管理系统面向健身行业数字化管理的综合平台【附源码、数据库、万字文档】
  • 2025年商用清洁设备核心性能深度评测报告:疏通机厂家、管道疏通机、超高压清洗机、防爆吸尘器、防爆吸尘器厂家、驾驶式扫地机 - 优质品牌商家
  • # 成都设计推广公司终极指南:品牌 / 文旅 / 空间 / 快消 / 地产需求,一家全搞定
  • 震惊!Agentic AI不会“自我进化“?韩家炜团队最新研究:四大适配策略让AI系统“活“起来,小白程序员也能看懂!