Khan Academy Perseus 61.1.0版本技术解析
Perseus是Khan Academy开发的一个开源数学题目渲染和交互引擎,主要用于在线教育平台中的数学题目展示和解答。该引擎支持多种数学题型,包括选择题、填空题、绘图题等,并提供丰富的交互功能。最新发布的61.1.0版本带来了一系列功能增强和问题修复,下面我们将详细解析这些更新内容。
核心功能增强
Plotter组件支持无答案数据渲染
Plotter组件是Perseus中用于绘制数学图形的工具。在61.1.0版本中,开发团队对其进行了优化,使其能够处理没有预设答案的数据场景。这一改进使得Plotter组件更加灵活,可以用于教学演示等不需要立即验证答案的场景。同时,团队还新增了相关测试用例和故事书示例,确保这一功能的稳定性。
ButtonGroup组件样式定制
ButtonGroup组件新增了选中按钮的样式定制选项。开发者现在可以通过配置参数来控制选中按钮的视觉表现,这为UI设计提供了更大的灵活性。这一改进特别适合需要突出显示用户选择的场景,如多选题或导航菜单。
Orderer组件支持无答案模式
类似于Plotter组件,Orderer组件(用于排序题)现在也能够处理无答案数据的情况。这一改进使得Orderer组件可以用于教学演示或练习模式,而不必局限于严格的答案验证场景。开发团队同样为这一功能添加了全面的测试和故事书示例。
Matrix组件无答案渲染支持
Matrix组件(矩阵题)也获得了无答案数据渲染的能力。这一改进使得矩阵题可以用于更广泛的教学场景,如矩阵运算的教学演示。团队为此新增了测试用例和故事书示例,确保功能的可靠性。
类型系统改进
NumberLine组件类型完善
开发团队对NumberLine组件(数轴题)的类型定义进行了多项改进:
- 明确了correctRel属性的类型为"eq" | "lt" | "gt" | "le" | "ge",更准确地反映了实际数据和使用场景
- 添加了isInequality属性到类型定义中,修复了之前类型定义不完整的问题
这些改进使得NumberLine组件的类型系统更加严谨,有助于开发者在编译时发现潜在问题。
InteractiveGraph组件类型优化
对InteractiveGraph组件的类型定义进行了清理:
- 移除了lockedFigures和labels属性中的undefined类型,要求使用空数组代替
- 移除了非point类型图形中不必要的coord属性
这些变更使得类型定义更加精确,虽然可能需要对现有代码进行少量调整,但有助于提高代码质量。
测试与质量保证
新增测试用例
61.1.0版本中新增了多项测试:
- InputNumber组件测试,验证其在无答案数据下的交互行为
- NumberLine组件测试,确保其正确处理无答案数据
- ServerItemRenderer测试重构,使其更加专注和清晰
这些测试提高了代码的可靠性和可维护性。
不可变数据检查
新增了一个linter规则,用于防止意外修改对象和数组值。这一改进有助于避免因意外数据变更导致的bug,特别是在React的不可变数据模型中。
文档与示例
- 更新了Radio组件的文档,在测试数据中添加了rationales(解释说明)
- 为多个组件添加了故事书示例,包括Plotter、Orderer和Matrix组件
这些文档改进使得组件使用更加透明,便于开发者理解和正确使用各个功能。
依赖管理
修复了项目的依赖关系,确保包声明中包含了所有实际使用的依赖项。这一改进解决了潜在的依赖缺失问题,提高了项目的稳定性。
总结
Perseus 61.1.0版本在功能增强、类型系统完善、测试覆盖和文档改进等方面都有显著提升。特别是多个组件新增的无答案数据支持,大大扩展了Perseus在教学场景中的应用范围。类型系统的改进和不可变数据检查的引入,则从工程角度提高了代码质量和可靠性。这些改进共同使得Perseus作为一个数学题目渲染引擎更加成熟和完善。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0576
MiniMax-H3MiniMax H3 是一个通用的全模态生成系统。它支持对由文本、图像、视频和音频组成的多模态上下文进行统一理解,并能生成分辨率高达 2K、时长可达 15 秒的带原生立体声音频的视频。得益于面向任务泛化的系统设计,H3 在预训练阶段就已具备广泛的多模态上下文理解与生成能力,能够出色地执行复杂的多模态指令。Python00
DataFlow基于大模型算子和工作流的高效文本大模型训练数据合成框架Python07
doraDORA (Dataflow-Oriented Robotic Architecture 面向数据流的机器人架构) 是为 AI 与具身智能机器人打造的高性能开发框架,以数据流范式重构开发逻辑,原生支持分布式部署与端边云协同 —— 无需复杂适配,即可实现一体端到端具身大小脑、VLA等模型部署,无缝衔接感知、推理、控制全链路,让 AI 能力与机器人动作深度融合。 依托 Rust 内核与零拷贝通信技术,它将具身大小脑、VLA等模型推理、多模态数据融合延迟压缩至微秒级,同时兼容 ROS2 生态与国产 AI 芯片,彻底降低具身智能机器人的开发门槛,让分布式部署下的 AI 赋能创新更高效、更灵活。Rust02
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown01
py-xiaozhi基于Python的Xiaozhi AI,适用于想要完整Xiaozhi体验而无需拥有专用硬件的用户。Python01