蟹老师 · 全模态助教¶
蟹老师是 BYOCC 首页左下角的交互式 Agent 学习向导,由 MiniCPM-o 4.5 提供可插拔的多模态理解能力。点击螃蟹即可向上展开面板;再次点击螃蟹、点击关闭按钮或按 Esc 可以收起。
能做什么¶
文字提问¶
学习者可以围绕 Agent Harness 提问。助教采用苏格拉底式引导,通常会给出一个小提示或反问,而不是直接交付完整答案。Demo 消息库覆盖 Agent Loop、tool_use / tool_result、规划、子 Agent、上下文压缩、退出条件和权限边界等主题。
语音输入与播报¶
按住“语音说话”按钮时,浏览器使用 getUserMedia 获取麦克风音频,并通过 Web Speech API 的 SpeechRecognition 生成中文转写;Canvas 同时绘制实时波形。松开后,转写文本连同音频数据交给统一模型客户端。
收到回复后,页面使用 SpeechSynthesis 主动朗读,并显示播放波形、驱动螃蟹的说话动画。浏览器不支持语音识别或用户拒绝麦克风权限时,面板会给出降级提示,文字和视觉入口仍可使用。
关于全双工
MiniCPM-o 4.5 模型支持全双工实时语音能力。当前 BYOCC 浏览器 Demo 为便于课堂和比赛现场稳定演示,采用“按住说话、松开发送”的半双工交互;接入官方实时流式服务后可以扩展为边听边说。
屏幕视觉理解¶
点击“看屏幕”后,前端使用 html2canvas 截取当前可视区,并提取视口内的标题作为辅助上下文。截图会被压缩后放入消息中,叠加粉笔风定位框,让用户明确看到本轮确实包含视觉输入。
真实模型模式会把截图作为 OpenAI-compatible image_url 内容发送给 MiniCPM-o;Demo 模式则基于可见标题生成可复现的本地分析。两种模式都会显示截图缩略图与「视觉·文本」模态标签。
调用链路¶
所有模型请求都经过 platform/src/lib/minicpm-client.ts。客户端接受文本、截图和可选音频,统一输出文本、实际使用的模态和可选音频。
1 2 3 4 5 6 7 | |
配置¶
Demo 模式¶
不设置 NEXT_PUBLIC_MINICPM_API_URL 即可。Demo 不需要 API Key,文字匹配、截图和标注在本地完成;语音识别与合成仍使用浏览器原生能力,因此浏览器可能请求麦克风权限。
推荐:服务端代理¶
平台配置:
1 2 | |
服务端配置:
1 2 3 4 | |
当上游地址以 /v1 结尾时,代理会请求 /v1/chat/completions。如果使用自建 vLLM-Omni 或其他兼容服务,也可以直接配置完整的 Chat Completions 地址。
本地直连¶
NEXT_PUBLIC_MINICPM_API_KEY 可用于受控的本地联调,但 NEXT_PUBLIC_ 环境变量会被打进浏览器代码,不能用于生产密钥。公开部署应使用服务端代理。
浏览器与数据边界¶
- Chrome / Edge 对 Web Speech API 的支持最完整;其他浏览器会自动降级。
- 屏幕截图只在用户点击“看屏幕”后发生,助教面板和螃蟹本身会从截图中排除。
- Demo 模式不会上传截图或音频;真实模型模式会把用户主动提供的内容发送到配置的端点。
- 面板遵循站点现有明暗主题和
prefers-reduced-motion,移动端会适配为接近全宽的单列布局。
当前范围¶
该功能面向教学与模型能力演示,不保存对话历史到服务端,也不替代 Lab 的正式验证流程。视觉标注用于展示输入区域和辅助理解,不等同于目标检测模型的精确边界框。