Skip to content

ReoNa0216/PolyLingo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolyLingo - 你的智能语言学习伙伴

AI Powered Web Platform Offline First

基于 AI 提取、SRS 间隔重复和智能测试的个性化语言学习平台


📖 项目简介

PolyLingo 是一个专为语言学习者设计的开源 Web 应用,采用 AI 技术从任意文本材料中提取学习条目(单词、短语、句子),结合科学的 SRS(Spaced Repetition System,间隔重复系统)算法帮助你高效记忆。无论你是初学者还是进阶学习者,PolyLingo 都能为你提供个性化的学习体验。


✨ 核心功能

1. 🤖 AI 智能提取

  • 自定义语言支持:不仅支持德语、日语、英语等默认语言,还可以添加任何你想学习的语言
  • 智能 Prompt 配置:为每种语言自定义 AI 提取要求(如词性标注、语法说明、使用场景等)
  • 批量导入:上传 TXT、Markdown、PDF、Word 等格式的文本文件,AI 自动提取学习条目

2. 📚 学习条目管理

  • 三种条目类型:单词(word)、短语(phrase)、句子(sentence)
  • 富文本解释:自定义模块支持 Markdown 格式的详细解释(可包含表格、列表、标题等)
  • 例句展示:每个条目可附带例句,帮助理解用法
  • 多模块管理:同时学习多种语言,各语言独立管理

3. 🔄 SRS 间隔重复复习

  • 科学算法:基于 SM-2 算法的间隔重复系统,自动计算下次复习时间
  • 每日复习计划:根据你的设置生成每日复习任务
  • 实时计时:复习时自动记录学习时长
  • 进度追踪:清晰的学习统计数据和日历视图
  • 混合复习:支持单语言复习或多语言混合复习,灵活选择

4. 📝 智能测试系统

  • 三种题型
    • 选择题:从选项中选择正确答案
    • 填空题:根据上下文填写正确词汇
    • 翻译题:中译外或外译中
  • AI 生成题目:基于你的学习条目智能生成测试题
  • 语言选择:测试时可选择特定语言或混合多种语言
  • 错题回顾:测试后可查看错题和详细解析
  • 历史记录:保存所有测试记录,追踪进步曲线

5. 📰 新闻抓取(内置材料源)

  • 德语:ZDF Heute 新闻
  • 日语:朝日新聞 (Asahi Shimbun)
  • 英语:BBC News、The Guardian、NPR
  • 自动提取:抓取新闻后自动调用 AI 提取学习条目

6. 🔧 高度可配置

  • API 配置:支持 OpenAI、GLM 等兼容 OpenAI API 格式的服务
  • 每日学习量:自定义每日复习条目数量
  • Prompt 模板:提供法语、韩语等参考 Prompt,也可完全自定义

🎯 用户体验

对于初学者

  • 上传教材或文章,AI 自动提取需要学习的词汇
  • 通过例句和详细解释理解用法
  • 每日复习任务清晰,不会感到压力
  • 测试功能帮助检验学习成果

对于进阶学习者

  • 添加专业领域的文章,提取专业术语
  • 自定义 Prompt 获得更深入的语言学分析(如词源、语法结构、语体辨析等)
  • 使用 Markdown 格式编写详细的学习笔记
  • 通过混合复习保持多种语言的熟练度

对于多语言学习者

  • 在一个应用中管理多种语言的学习
  • 灵活切换学习模块
  • 混合复习功能让你在一次复习中接触多种语言
  • 统计数据分别展示,清晰了解各语言的学习进度

🚀 快速开始

本地运行

步骤 1:下载项目

# 克隆仓库
git clone https://github.com/ReoNa0216/PolyLingo.git

# 进入项目目录
cd PolyLingo

或者直接在 GitHub 页面点击 CodeDownload ZIP,解压到本地。

步骤 2:本地运行

Windows 用户:

# 进入项目目录
cd PolyLingo

# 启动本地服务器
python -m http.server 8080

Mac 用户:

# 进入项目目录
cd PolyLingo

# 启动本地服务器(macOS 通常已预装 Python)
python3 -m http.server 8080

# 或者使用 PHP(如果已安装)
php -S localhost:8080

# 或者使用 Node.js(如果已安装)
npx http-server -p 8080

然后访问 http://localhost:8080

步骤 3:配置 AI API

  1. 首次打开应用后,点击右上角的 设置 图标
  2. 填写以下信息:
    • API URL:你的 AI 服务地址(如 OpenAI: https://api.openai.com/v1,或 GLM: https://open.bigmodel.cn/api/paas/v4
    • API Key:你的 API 密钥
    • 模型名称:如 gpt-4gpt-3.5-turboglm-4
    • Max Tokens:建议设置为 8000-16000,确保能处理长文本
  3. 点击 保存设置

步骤 4:开始学习

添加语言模块
  1. 点击左侧边栏底部的 + 按钮
  2. 选择预设语言(德语/日语/英语)或点击 添加自定义语言
  3. 对于自定义语言:
    • 填写语言名称(如"韩语")
    • 设置国旗图标(emoji,如 🇰🇷)
    • 配置 AI Prompt(可参考 prompt-examples 文件夹中的示例)
    • 点击 保存
上传学习材料
  1. 选择要学习的语言模块
  2. 点击 上传材料 或将文件拖入上传区域
  3. 支持格式:TXT、Markdown、PDF、Word(需要后端服务支持)
  4. AI 会自动提取学习条目,等待处理完成
开始复习
  1. 在首页点击 立即开始复习,或在侧边栏选择具体语言后点击 开始复习
  2. 查看正面(原文),思考答案
  3. 点击 显示答案 查看翻译和解释
  4. 根据掌握程度选择:
    • 困难:很快会再次复习
    • 一般:按正常间隔复习
    • 简单:延长复习间隔
生成测试
  1. 点击侧边栏的 测试 按钮,或在首页点击 立即开始测试
  2. 选择要测试的语言(可多选)
  3. 选择题型和数量:
    • 选择题(四选一)
    • 填空题
    • 翻译题
  4. 点击 开始测试
  5. 完成后查看得分和错题解析
查看统计数据
  • 学习统计:图表展示学习时长、复习量、测试分数趋势
  • 日历视图:查看每天的学习活动
  • 模块详情:各语言的学习进度、条目数量、待复习数量

📁 项目结构

PolyLingo/
├── index.html          # 主页面
├── app.js              # 主应用逻辑
├── backend/            # 可选的后端代理服务(用于新闻抓取)
│   ├── index.js
│   ├── package.json
│   └── vercel.json
├── prompt-examples/    # Prompt 参考示例
│   ├── 法语参考prompt.txt
│   └── 韩语参考prompt.txt
└── README.md           # 本文件

⚙️ 高级配置

自定义 AI Prompt

在添加自定义语言时,你可以配置三种类型的 Prompt:

  1. 单词提取 Prompt:告诉 AI 如何提取和格式化单词条目
  2. 短语提取 Prompt:告诉 AI 如何提取和格式化短语条目
  3. 句子提取 Prompt:告诉 AI 如何提取和格式化句子条目

Prompt 中可以使用占位符,如 {{word}}{{translation}}{{explanation}} 等,系统会自动替换为具体要求。

后端代理部署(可选,仅用于新闻抓取功能)

如果不使用新闻抓取功能(只上传自己的材料),无需部署后端,跳过此部分即可。

如果需要使用新闻抓取功能(获取 ZDF、BBC、朝日新聞等外文新闻),请自行部署后端代理服务(不提供公共代理):

cd backend
npm install -g vercel
vercel login
vercel

Mac 用户注意事项

  • 如果提示权限不足,请加 sudosudo npm install -g vercel
  • 首次运行 Vercel CLI 时,系统可能会提示安全警告,需到系统设置 > 隐私与安全中允许

部署完成后,Vercel 会给你一个 URL(如 https://your-project.vercel.app)。

在哪里配置?

  1. 打开 PolyLingo 应用
  2. 点击右下角的设置按钮(齿轮图标)
  3. 找到 代理服务地址 字段
  4. 填入你的 Vercel URL(如 https://your-project.vercel.app
  5. 点击保存

技术说明:这个后端代理仅用于解决浏览器跨域限制(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! 🎉

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors