Alex Emaire's Blog

个人归档站

输入关键词搜索全站文章

Yomii - 日语学习助手

Yomii 是一个面向日语学习场景的桌面化应用,把查词、背单词、分级测试和 AI 作文评测放进同一套学习系统。

技术栈 Vue 3, TypeScript, Electron, FastAPI, SQLModel, SQLite, MySQL
记录重点 Search, review, quiz, essay evaluation, tests and docs

项目背景

语言学习工具常常把查词、收藏、复习、测试和作文反馈拆散。Yomii 的目标是把这些链路连起来,让学习记录能够回流到下一次复习和测试中。

系统结构

01 Vue learning UI

查词、背词、测试、作文等页面保持统一入口,降低学习时切换工具的成本。

02 Electron desktop

支持本地桌面运行和打包,让学习工具能脱离浏览器标签页长期使用。

03 FastAPI backend

后端负责账号、进度、测试报告、作文评测编排和 API 文档。

04 Split storage

SQLite 存词典、词级和题库等静态数据,MySQL 存用户、收藏、进度和作文记录。

05 AI essay loop

本地 Qwen 评分/修订 LoRA 路线优先,在线模型作为补充候选和兜底。

实现笔记

  • Learning loop: search history, favorites, review state and quiz reports form a closed path instead of isolated pages.
  • Data boundary: static dictionary assets and user behavior data are split across SQLite and MySQL responsibilities.
  • AI orchestration: essay evaluation supports mock/lightweight mode, local model services, and optional online fallback.
  • Delivery modes: the app can run as web front-end/back-end development mode or packaged Electron desktop app.
  • Tests: backend tests cover auth, quiz, review, progress, essay evaluation and training-data preparation paths.

过程中的取舍

  • Full local model evaluation is stronger for control and privacy, but requires heavier runtime dependencies.
  • Two database roles make data ownership clearer, but increase setup complexity for new contributors.
  • Electron packaging improves desktop availability, while still requiring the web/API path to stay testable.

当前状态

  • The repository includes frontend, Electron, FastAPI backend, database design docs, training scripts, and backend tests.
  • The documented workflows cover search, review, quiz, essay evaluation, local model serving, and desktop build commands.
  • 目前还缺少应用截图和一段从作文请求到评测结果的完整流程记录。

相关入口

想继续了解实现时,可以从这些目录和文档开始:

后续记录

后续会补应用截图、学习流程图和一个简短的“作文评测请求到结果”序列图,把实际使用过程和当前完成度记录得更清楚。