基于 AI 提取、SRS 间隔重复和智能测试的个性化语言学习平台
PolyLingo 是一个专为语言学习者设计的开源 Web 应用,采用 AI 技术从任意文本材料中提取学习条目(单词、短语、句子),结合科学的 SRS(Spaced Repetition System,间隔重复系统)算法帮助你高效记忆。无论你是初学者还是进阶学习者,PolyLingo 都能为你提供个性化的学习体验。
- 自定义语言支持:不仅支持德语、日语、英语等默认语言,还可以添加任何你想学习的语言
- 智能 Prompt 配置:为每种语言自定义 AI 提取要求(如词性标注、语法说明、使用场景等)
- 批量导入:上传 TXT、Markdown、PDF、Word 等格式的文本文件,AI 自动提取学习条目
- 三种条目类型:单词(word)、短语(phrase)、句子(sentence)
- 富文本解释:自定义模块支持 Markdown 格式的详细解释(可包含表格、列表、标题等)
- 例句展示:每个条目可附带例句,帮助理解用法
- 多模块管理:同时学习多种语言,各语言独立管理
- 科学算法:基于 SM-2 算法的间隔重复系统,自动计算下次复习时间
- 每日复习计划:根据你的设置生成每日复习任务
- 实时计时:复习时自动记录学习时长
- 进度追踪:清晰的学习统计数据和日历视图
- 混合复习:支持单语言复习或多语言混合复习,灵活选择
- 三种题型:
- 选择题:从选项中选择正确答案
- 填空题:根据上下文填写正确词汇
- 翻译题:中译外或外译中
- AI 生成题目:基于你的学习条目智能生成测试题
- 语言选择:测试时可选择特定语言或混合多种语言
- 错题回顾:测试后可查看错题和详细解析
- 历史记录:保存所有测试记录,追踪进步曲线
- 德语:ZDF Heute 新闻
- 日语:朝日新聞 (Asahi Shimbun)
- 英语:BBC News、The Guardian、NPR
- 自动提取:抓取新闻后自动调用 AI 提取学习条目
- API 配置:支持 OpenAI、GLM 等兼容 OpenAI API 格式的服务
- 每日学习量:自定义每日复习条目数量
- Prompt 模板:提供法语、韩语等参考 Prompt,也可完全自定义
- 上传教材或文章,AI 自动提取需要学习的词汇
- 通过例句和详细解释理解用法
- 每日复习任务清晰,不会感到压力
- 测试功能帮助检验学习成果
- 添加专业领域的文章,提取专业术语
- 自定义 Prompt 获得更深入的语言学分析(如词源、语法结构、语体辨析等)
- 使用 Markdown 格式编写详细的学习笔记
- 通过混合复习保持多种语言的熟练度
- 在一个应用中管理多种语言的学习
- 灵活切换学习模块
- 混合复习功能让你在一次复习中接触多种语言
- 统计数据分别展示,清晰了解各语言的学习进度
# 克隆仓库
git clone https://github.com/ReoNa0216/PolyLingo.git
# 进入项目目录
cd PolyLingo或者直接在 GitHub 页面点击 Code → Download ZIP,解压到本地。
Windows 用户:
# 进入项目目录
cd PolyLingo
# 启动本地服务器
python -m http.server 8080Mac 用户:
# 进入项目目录
cd PolyLingo
# 启动本地服务器(macOS 通常已预装 Python)
python3 -m http.server 8080
# 或者使用 PHP(如果已安装)
php -S localhost:8080
# 或者使用 Node.js(如果已安装)
npx http-server -p 8080然后访问 http://localhost:8080
- 首次打开应用后,点击右上角的 设置 图标
- 填写以下信息:
- API URL:你的 AI 服务地址(如 OpenAI:
https://api.openai.com/v1,或 GLM:https://open.bigmodel.cn/api/paas/v4) - API Key:你的 API 密钥
- 模型名称:如
gpt-4、gpt-3.5-turbo、glm-4等 - Max Tokens:建议设置为 8000-16000,确保能处理长文本
- API URL:你的 AI 服务地址(如 OpenAI:
- 点击 保存设置
- 点击左侧边栏底部的 + 按钮
- 选择预设语言(德语/日语/英语)或点击 添加自定义语言
- 对于自定义语言:
- 填写语言名称(如"韩语")
- 设置国旗图标(emoji,如 🇰🇷)
- 配置 AI Prompt(可参考
prompt-examples文件夹中的示例) - 点击 保存
- 选择要学习的语言模块
- 点击 上传材料 或将文件拖入上传区域
- 支持格式:TXT、Markdown、PDF、Word(需要后端服务支持)
- AI 会自动提取学习条目,等待处理完成
- 在首页点击 立即开始复习,或在侧边栏选择具体语言后点击 开始复习
- 查看正面(原文),思考答案
- 点击 显示答案 查看翻译和解释
- 根据掌握程度选择:
- 困难:很快会再次复习
- 一般:按正常间隔复习
- 简单:延长复习间隔
- 点击侧边栏的 测试 按钮,或在首页点击 立即开始测试
- 选择要测试的语言(可多选)
- 选择题型和数量:
- 选择题(四选一)
- 填空题
- 翻译题
- 点击 开始测试
- 完成后查看得分和错题解析
- 学习统计:图表展示学习时长、复习量、测试分数趋势
- 日历视图:查看每天的学习活动
- 模块详情:各语言的学习进度、条目数量、待复习数量
PolyLingo/
├── index.html # 主页面
├── app.js # 主应用逻辑
├── backend/ # 可选的后端代理服务(用于新闻抓取)
│ ├── index.js
│ ├── package.json
│ └── vercel.json
├── prompt-examples/ # Prompt 参考示例
│ ├── 法语参考prompt.txt
│ └── 韩语参考prompt.txt
└── README.md # 本文件
在添加自定义语言时,你可以配置三种类型的 Prompt:
- 单词提取 Prompt:告诉 AI 如何提取和格式化单词条目
- 短语提取 Prompt:告诉 AI 如何提取和格式化短语条目
- 句子提取 Prompt:告诉 AI 如何提取和格式化句子条目
Prompt 中可以使用占位符,如 {{word}}、{{translation}}、{{explanation}} 等,系统会自动替换为具体要求。
如果不使用新闻抓取功能(只上传自己的材料),无需部署后端,跳过此部分即可。
如果需要使用新闻抓取功能(获取 ZDF、BBC、朝日新聞等外文新闻),请自行部署后端代理服务(不提供公共代理):
cd backend
npm install -g vercel
vercel login
vercelMac 用户注意事项:
- 如果提示权限不足,请加
sudo:sudo npm install -g vercel - 首次运行 Vercel CLI 时,系统可能会提示安全警告,需到系统设置 > 隐私与安全中允许
部署完成后,Vercel 会给你一个 URL(如 https://your-project.vercel.app)。
在哪里配置?
- 打开 PolyLingo 应用
- 点击右下角的设置按钮(齿轮图标)
- 找到 代理服务地址 字段
- 填入你的 Vercel URL(如
https://your-project.vercel.app) - 点击保存
技术说明:这个后端代理仅用于解决浏览器跨域限制(CORS),让前端能够请求新闻网站的内容。PDF/Word 处理和所有数据存储均在本地完成,不经过此代理。
Q: 为什么 AI 提取失败?
A: 请检查:1) API Key 是否正确;2) API URL 是否完整(需包含 /v1);3) 余额是否充足。
Q: 数据存储在哪里?
A: 所有数据都存储在浏览器的 IndexedDB 中,完全本地化,不会上传到服务器。
Q: 如何备份数据?
A: 目前需要手动导出,建议定期备份浏览器数据或等待后续版本添加导出功能。
PolyLingo 是一个开源项目,欢迎提出建议和反馈!
- 遇到问题?请在 GitHub Issues 中描述
- 有新功能想法?欢迎提交 Feature Request
- 想要贡献代码?Fork 本仓库并提交 Pull Request
你的建议将帮助 PolyLingo 变得更好!
本项目暂时不打算用作商业用途。
如有私自用作商业用途,被发现将被作者追责。
本项目采用开源协议(具体协议待补充),仅供个人学习交流使用。
感谢所有为 PolyLingo 提供建议和反馈的用户!
Happy Learning! 🎉