🎓 AI English Learning Assistant
一个智能的 VS Code 英语学习插件,通过 AI 生成上下文化的句子帮助你学习英语,集成艾宾浩斯记忆曲线的单词本管理系统和智能复习提醒功能。

🎉 v2.0 重大更新: 全新的现代化界面,提供更好的用户体验和可维护性!集成艾宾浩斯记忆曲线智能复习系统!
📑 目录
✨ 核心功能
🎨 现代化界面
- TypeScript + 原生 Web 技术: 轻量级设计,完整类型安全
- VS Code 原生风格: 完美适配编辑器主题,包括明暗模式
- 响应式设计: 支持侧边栏和独立面板,自适应窗口大小
- 工具栏快捷操作: 快速访问学习、设置和统计功能
- 智能引导: 首次使用自动显示配置向导
🤖 AI 驱动的学习内容生成
- 多 AI 提供商支持:
- OpenAI (GPT-3.5, GPT-4, GPT-4o)
- Anthropic (Claude 3 系列)
- 自定义 API 端点
- 主题化学习: 6 大预设主题(日常、工作、科技、旅行、美食、健康)
- 智能句子生成: 根据难度和学习进度自动调整
- 单词关联生成: 基于单词本中的词汇生成复习句子
- 代理支持: 支持 HTTP/HTTPS/SOCKS 代理
📚 艾宾浩斯记忆曲线单词本
- 科学记忆系统: 基于 SM-2 算法的间隔重复学习
- 6 级记忆质量评分:
- 0 - 完全忘记 (Completely Forgot)
- 1 - 很难记起 (Hard to Remember)
- 3 - 努力想起 (Remembered with Effort)
- 4 - 较容易 (Easy to Remember)
- 5 - 完美记忆 (Perfect Memory)
- 智能复习调度:
- 自动计算下次复习时间
- 难度系数自适应调整 (1.3 - 2.5)
- 复习间隔动态变化 (1-30+ 天)
- 上下文记忆: 保存单词的来源句子,增强记忆效果
- 掌握度追踪: 自动标记已掌握的单词
- 批量管理: 支持批量添加、删除、导出单词
🎯 交互式学习体验
- 点击选词: 直接点击句子中的单词标记为需要学习
- 即时朗读: 选中单词自动播放发音
- 单词高亮: 已选中的单词高亮显示
- 快速复习: 一键完成复习并自动加载下一句
- 详细视图: 查看单词详情和 AI 生成的例句
- 实时反馈: 操作即时响应,流畅的用户体验
🔔 智能学习提醒
- 定时提醒系统:
- 可配置提醒间隔(5-120 分钟)
- 设置工作时段(避免非工作时间打扰)
- 自定义每次显示句子数量(1-5 句)
- 优先级复习: 优先显示到期需要复习的单词
- 状态栏指示: 实时显示提醒状态
- 一键开关: 快速启用/禁用提醒功能
🔊 文本转语音 (TTS)
- 内置 TTS 引擎: 使用 Web Speech API
- 多语速支持: 0.5x - 2.0x 可调
- 自动朗读: 选词时自动播放
- 句子发音: 点击句子播放完整发音
- 可随时开关: 不影响其他功能使用
📊 学习数据分析
- 学习统计:
- 总句子数和已复习数
- 平均复习次数
- 单词总数和掌握数
- 间隔重复统计:
- 今日待复习单词数
- 近期待复习单词预览
- 复习完成情况
- 可视化树形视图:
- 按状态分类显示单词
- 查看单词详细信息
- 快速跳转到相关句子
⚙️ 灵活的配置系统
- 面板内配置: 无需打开设置,在学习面板直接配置
- 配置持久化: 自动保存到 VS Code 用户设置
- 连接测试: 一键测试 AI API 连接状态
- 实时生效: 配置更改立即应用,无需重启
🚀 快速开始
1. 安装插件
方式一:VS Code 扩展市场
- 打开 VS Code
- 按
Cmd/Ctrl + Shift + X 打开扩展面板
- 搜索 "AI English Learning" 或 "30day-english"
- 点击安装
方式二:命令行安装
code --install-extension alsritter.30day-english
2. 配置 AI 服务
方式一:面板内配置(推荐 ⭐)
- 点击侧边栏的 📚 图标打开学习面板
- 点击工具栏的 ⚙️ Settings 按钮
- 填写配置信息:
- AI Provider: 选择 OpenAI / Anthropic / Custom
- API Key: 输入你的 API 密钥
- API Base URL: (可选)自定义 API 端点
- Model: 选择模型(如 gpt-3.5-turbo, gpt-4, claude-3-sonnet)
- Temperature: 生成温度 (0-2),默认 0.7
- Max Tokens: 最大令牌数,默认 500
- 点击 💾 Save Settings 保存
- 点击 🔌 Test Connection 测试连接
方式二:VS Code 设置文件配置
打开命令面板(Cmd/Ctrl + Shift + P),输入 Preferences: Open Settings (JSON):
{
"30day-english.ai.provider": "openai",
"30day-english.ai.apiKey": "your-api-key-here",
"30day-english.ai.apiEndpoint": "",
"30day-english.ai.model": "gpt-3.5-turbo",
"30day-english.ai.temperature": 0.7,
"30day-english.ai.maxTokens": 500
}
AI 提供商配置示例:
OpenAI 配置
{
"30day-english.ai.provider": "openai",
"30day-english.ai.apiKey": "sk-...",
"30day-english.ai.model": "gpt-3.5-turbo"
}
Anthropic Claude 配置
{
"30day-english.ai.provider": "anthropic",
"30day-english.ai.apiKey": "sk-ant-...",
"30day-english.ai.model": "claude-3-sonnet-20240229"
}
自定义 API 配置
{
"30day-english.ai.provider": "custom",
"30day-english.ai.apiKey": "your-key",
"30day-english.ai.apiEndpoint": "https://your-api-endpoint.com/v1/chat/completions",
"30day-english.ai.model": "your-model-name"
}
💡 提示: 如果不配置 AI,插件会使用内置的预设句子进行学习。
3. 开始学习
三种启动方式:
- 快捷键:
Cmd/Ctrl + Alt + E
- 命令面板: 按
Cmd/Ctrl + Shift + P,输入 English Learning: Start Learning Session
- 侧边栏: 点击活动栏的 📚 图标
📖 详细功能说明
🎓 学习流程
1. 打开学习面板
- 点击侧边栏的 📚 图标
- 或使用快捷键
Cmd/Ctrl + Alt + E
- 或执行命令
Start Learning Session
2. 查看和学习句子
- 阅读显示的英文句子和中文翻译
- 注意难度标签(Easy/Medium/Hard)
- 点击 🔊 按钮播放整句发音
- 仔细理解句子含义
3. 标记生词
- 点击句子中不认识的单词
- 选中的单词会:
- 高亮显示
- 自动播放发音
- 显示在底部的"已选单词"区域
- 可随时点击取消选择
4. 添加到单词本
- 点击 📚 Add to Vocabulary 按钮
- 选中的所有单词批量添加到单词本
- 系统会保存:
- 单词本身
- 来源句子(上下文)
- 添加时间
- 初始化艾宾浩斯参数
- 显示确认消息
5. 完成复习
- 点击 ✓ Finish Review 完成当前句子
- 系统记录:
- 自动加载下一个需要复习的句子
6. 跳过或查看更多
- 点击 → Next Sentence 跳过当前句子
- 如果没有待复习的句子,系统自动生成新句子
- 可手动执行
Generate New Sentences 命令批量生成
📚 单词本管理
查看单词本
在侧边栏的 "English Learning" → "Vocabulary Book" 面板中:
- Learning 文件夹: 正在学习的单词
- Mastered 文件夹: 已掌握的单词
- 每个单词显示:
单词详情
点击单词可查看详细信息:
- 原始上下文句子
- AI 生成的 3 个例句
- 复习历史统计
- 记忆质量评分按钮
- 下次复习时间预测
记忆质量评分
查看单词详情后,可以评分:
- 😰 Completely Forgot (0): 完全不记得,重置学习进度
- 😓 Hard to Remember (1): 很难想起来,增加复习频率
- 🤔 Remembered with Effort (3): 努力想起,正常复习
- 😊 Easy to Remember (4): 轻松想起,延长复习间隔
- 🎯 Perfect Memory (5): 完美记忆,大幅延长间隔
系统会根据评分自动调整:
- 下次复习时间
- 难度系数(Easy Factor)
- 复习间隔(Interval)
基于单词本生成复习句子
执行命令 Generate Review Sentences from Vocabulary:
- 从单词本中选择需要复习的单词
- AI 生成包含这些单词的新句子
- 加强对生词的记忆
清空单词本
执行命令 Clear Vocabulary Book:
🔔 学习提醒系统
启动提醒
方式一:命令
- 执行
English Learning: Start Learning Reminder
方式二:状态栏
方式三:自动启动
- 在设置中启用
reminder.enabled
- 插件激活时自动启动
提醒配置
{
"30day-english.reminder.enabled": true,
"30day-english.reminder.intervalMinutes": 30,
"30day-english.reminder.startHour": 9,
"30day-english.reminder.endHour": 22,
"30day-english.reminder.sentencesPerReminder": 1
}
配置说明:
enabled: 是否启用提醒
intervalMinutes: 提醒间隔(5-120 分钟)
startHour: 开始时段(0-23 小时)
endHour: 结束时段(0-23 小时)
sentencesPerReminder: 每次显示句子数(1-5)
提醒行为
- 在配置的时间段内定时弹出通知
- 优先显示:
- 到期需要复习的单词相关句子
- 复习次数少的句子
- 新生成的句子
- 点击通知直接打开学习面板
停止提醒
- 执行
English Learning: Stop Learning Reminder
- 或再次点击状态栏铃铛图标
📊 学习统计
基础统计
执行 Show Learning Statistics 查看:
间隔重复统计
执行 Show Spaced Repetition Statistics 查看:
- 单词概览:
- 复习计划:
- 今日待复习单词数
- 未来 3 天待复习数
- 待复习单词列表预览
- 可直接点击 "Review Now" 开始复习
🔊 文本转语音 (TTS)
TTS 功能
- 自动播放: 选中单词时自动朗读
- 手动播放: 点击 🔊 按钮或句子播放
- 语速调节: 支持 0.5x - 2.0x
- 语言: 美式英语 (en-US)
TTS 配置
{
"30day-english.tts.enabled": true,
"30day-english.tts.speed": 1.0
}
切换 TTS
- 执行
Toggle Text-to-Speech 命令
- 或在设置中修改
tts.enabled
🎨 学习主题管理
预设主题
- daily-life: 日常生活(购物、家务、社交等)
- work: 工作场景(会议、邮件、项目等)
- technology: 科技编程(代码、开发、工具等)
- travel: 旅行出行(订票、导航、酒店等)
- food: 美食餐饮(烹饪、点餐、食材等)
- health: 健康养生(运动、医疗、营养等)
配置主题
方式一:命令
- 执行
Configure Learning Themes
- 多选想要启用的主题
- 确认保存
方式二:设置文件
{
"30day-english.enabledThemes": [
"technology",
"work",
"daily-life"
]
}
主题效果
- 生成句子时会从启用的主题中随机选择
- 多主题可以让学习内容更丰富
- 建议启用 2-4 个相关主题
🎯 命令参考
核心命令
| 命令 |
说明 |
快捷键 |
图标 |
30dayEnglish.startLearning |
开始学习会话 |
Cmd/Ctrl + Alt + E |
$(play) |
30dayEnglish.showLearningPanel |
显示学习面板 |
- |
- |
30dayEnglish.generateSentences |
生成新句子 |
- |
$(add) |
30dayEnglish.generateReviewSentences |
基于单词本生成复习句子 |
- |
- |
提醒命令
| 命令 |
说明 |
快捷键 |
图标 |
30dayEnglish.toggleReminder |
切换学习提醒 |
- |
- |
30dayEnglish.startReminder |
启动学习提醒 |
- |
$(bell) |
30dayEnglish.stopReminder |
停止学习提醒 |
- |
$(bell-slash) |
单词本命令
| 命令 |
说明 |
快捷键 |
图标 |
30dayEnglish.viewVocabulary |
查看单词本 |
- |
- |
30dayEnglish.clearVocabulary |
清空单词本 |
- |
- |
30dayEnglish.showWordDetails |
显示单词详情 |
- |
- |
统计命令
| 命令 |
说明 |
快捷键 |
图标 |
30dayEnglish.showStats |
显示学习统计 |
- |
$(graph) |
30dayEnglish.showSpacedRepetitionStats |
显示间隔重复统计 |
- |
$(calendar) |
配置命令
| 命令 |
说明 |
快捷键 |
图标 |
30dayEnglish.configureAI |
配置 AI 设置 |
- |
$(settings-gear) |
30dayEnglish.configureThemes |
配置学习主题 |
- |
- |
30dayEnglish.toggleTTS |
切换文本转语音 |
- |
- |
⚙️ 配置选项
AI 配置
| 配置项 |
类型 |
默认值 |
说明 |
30day-english.ai.provider |
string |
"openai" |
AI 提供商 (openai/anthropic/custom) |
30day-english.ai.apiKey |
string |
"" |
API 密钥 |
30day-english.ai.apiEndpoint |
string |
"" |
自定义 API 端点(可选) |
30day-english.ai.model |
string |
"gpt-3.5-turbo" |
AI 模型名称 |
30day-english.ai.temperature |
number |
0.7 |
生成温度 (0-2),越高越有创造性 |
30day-english.ai.maxTokens |
number |
500 |
最大令牌数 |
学习主题配置
| 配置项 |
类型 |
默认值 |
说明 |
30day-english.enabledThemes |
array |
["technology", "work", "daily-life"] |
启用的主题列表 |
可用主题: daily-life, work, technology, travel, food, health
提醒配置
| 配置项 |
类型 |
默认值 |
说明 |
30day-english.reminder.enabled |
boolean |
true |
启用自动学习提醒 |
30day-english.reminder.intervalMinutes |
number |
30 |
提醒间隔(分钟),最小 5 |
30day-english.reminder.startHour |
number |
9 |
提醒开始时间(24 小时制,0-23) |
30day-english.reminder.endHour |
number |
22 |
提醒结束时间(24 小时制,0-23) |
30day-english.reminder.sentencesPerReminder |
number |
1 |
每次提醒显示的句子数(1-5) |
TTS 配置
| 配置项 |
类型 |
默认值 |
说明 |
30day-english.tts.enabled |
boolean |
true |
启用文本转语音 |
30day-english.tts.speed |
number |
1.0 |
播放速度(0.5-2.0) |
完整配置示例
{
// AI 配置
"30day-english.ai.provider": "openai",
"30day-english.ai.apiKey": "sk-...",
"30day-english.ai.apiEndpoint": "",
"30day-english.ai.model": "gpt-3.5-turbo",
"30day-english.ai.temperature": 0.7,
"30day-english.ai.maxTokens": 500,
// 学习主题
"30day-english.enabledThemes": [
"technology",
"work",
"daily-life"
],
// 提醒设置
"30day-english.reminder.enabled": true,
"30day-english.reminder.intervalMinutes": 30,
"30day-english.reminder.startHour": 9,
"30day-english.reminder.endHour": 22,
"30day-english.reminder.sentencesPerReminder": 1,
// TTS 设置
"30day-english.tts.enabled": true,
"30day-english.tts.speed": 1.0
}
📚 使用指南
每天坚持学习
- 启用定时提醒,保持学习节奏
- 即使很忙,也能通过提醒保持学习习惯
利用单词本
- 遇到不懂的单词立即添加
- 定期使用"Generate Review Sentences"复习单词本中的单词
- 单词会在实际句子中重复出现,加深记忆
主题学习
- 根据工作或兴趣选择主题
- 程序员可以重点学习 technology 主题
- 准备出国旅游可以启用 travel 主题
利用碎片时间
- 设置较短的提醒间隔(如 20-30 分钟)
- 利用编码间隙学习一个句子
- 积少成多,效果显著
语音学习
- 多听多读,培养语感
- 可以降低播放速度,听清每个单词
- 模仿发音,提高口语能力
🔒 隐私说明
- 所有学习数据存储在本地(VS Code 的 globalState)
- AI 调用仅发送必要的提示词和单词
- 不会上传你的代码或个人信息
- API 密钥仅用于调用 AI 服务,不会被收集
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License
🎉 致谢
感谢所有使用和支持这个项目的朋友!