SELECTED WORK / 2 PROJECTS

做出来的东西。
正在确认的事。

使用场景、设计意图、可核对的根据。不是技术名列表,而是从解决的问题讲起。每个条目用同样的栏目。

查看英语成绩证明的根据:募集要项、入试案内、追加提交物一览及各自的作用。箭头是参照/补充关系,不表示三份都要提交。公开演示画面,使用保存的样例。操作和拍摄日期见各图说明。

PROJECT 01 / RAG / DOCUMENT RETRIEVAL

J-Grad Admission RAG

把研究生院募集要项整理成能追溯到原文页码的申请支援信息

有公开 demo · 维护中 · 2026-07 → 2026-10

  1. 01从资料里找出需要的信息
  2. 02核对回答与根据的对应
  3. 03回到原文,重读条件
对象与问题
留学塾的教务要在研究科共通要项和专业资料之间来回查同样的信息;全交给 LLM 则出处会丢。
分工与 AI
一开始定了三条原则:事实和判定归程序、写成文字归 AI;"不知道"不能当成"不用";资料之间的关系要人确认过再用。需求、验收、方向调整是我;实现大半由 Codex / Claude Code 写,我用真实数据和回归测试验证。
验证与限制
真实 PDF 端到端确认、固定基准回归门、浏览器验收(桌面/手机)。CI 不每次重测模型——这个区别写进了公开文档。
下一步要改
两点。基础设施做得太满,用户能走完一条路径的界面出现得太晚,下次先出窄而完整的一条。另一点是流程相对于两所学校、几十位试用者的规模太重:设计判断文档写了 17 份,值得留下的是 7 份。下次只给"以后不想再争论的判断"写文档。
可核对的数字
Recall@10 0.8852 · MRR 0.8323
固定 42 题 · 391 条 KB 的保存评测(2026-09-24)。指"正确根据进入前 10 条检索结果"的比例,不是回答的正确率
技术
PythonFastAPIPyMuPDFBGE-M3BM25 / RRFPydanticpytestPlaywrightGitHub Actions
TTS 语音或公开虚构资料运行的应用画面,不含真人对话录音和个人信息(2026-10-28)。公开画面与录像来自 TTS 语音或公开虚构资料的运行,尚未开展第三方试用和日语母语者审阅。

PROJECT 02 / JAPANESE LEARNING / CLAUDE SKILL + GPU

Japanese Speaking Coach

在日语对话中显示带假名的字幕和「能直接说出口」的接话建议的 Windows 应用;推荐的那条先说结论,也能参考自己的课程资料并注明出处

开发中(第二阶段:字幕、接话建议、资料参考、复盘都能运行) · 2026-10 →

  1. 01看字幕——只给难的汉字注假名
  2. 02从加粗的结论开始,把 ⭐ 那条直接说出口
  3. 03确认根据课程资料的回答和出处

在主画面之外查看历史记录和保存内容。

历史与查词

TTS 音声による再生・個人情報なし(2026-10-25、commit 3ba4bea)

对象与问题
在日本的中文母语者(N4–N2)面对店员敬语和同事口语,几秒内接不上话。先讲解释的教材帮不上忙。
分工与 AI
输出格式与教学策略、⭐ 推荐的五步判定规则、LLM 评审的评测设计是我;Skill 正文和字幕应用的实现是 Claude Code。
验证与限制
数字来自 TTS 语音和文字评测(速度 n=10、回复 20 句×2、虚构资料 8 题)。作者本人在真实视频和一节 89 分钟的线上课里用过,发现的问题记录在 D-013〜D-041 并已修正。最新版的真实对话确认、第三方试用、母语者审阅尚未进行。
下一步要改
交给另一个 agent 推进时,只按「不编造」一个指标优化,结果回复满是【参加できます/参加できません】这类空格,没法直接说出口;评测测的也不是应用实际用的那套提示词。下次每次改动都同时测「能不能直接说」,并用和正式应用相同的路径评测。
可核对的数字
2.21 s · 102/102 · 328 tests
最后一句字幕到接话建议 p50 2.21 秒(p95 2.50),语音识别 p50 0.25 秒(RTX 5060,TTS 10 句);能直接说出口的回复 102/102(20 句×2);单元测试 328 个
技术
Claude Skillfaster-whisper (large-v3-turbo)CUDAMeCab / fugashiDeepSeek APItkinterAnki export