Skip to content

An intelligent, automatic Anki flashcard generator that integrates multiple dictionaries with AI models to create comprehensive English vocabulary cards with definitions, pronunciations, and smart memory aids.

License

Notifications You must be signed in to change notification settings

yaoyhu/anki_packager

Repository files navigation

Logo
anki_packager

自动化 Anki 英语单词高质量卡片牌组生成工具
关于项目 · 使用指南 · 开发计划 · 致谢

关于项目

anki_packager 是一款自动化的 Anki 单词卡片生成工具,能够自动创建高质量的 .apkg 牌组。本项目致力于为英语学习者提供一个高效、智能的记忆辅助工具。

核心特性

  • 多源精选词典整合:ECDICT《有道词语辨析》加强版单词释义比例词典
  • 智能化学习体验:
    • 自动抓取有道词典优质例句和常用短语
    • 支持谷歌 TTS 发音、中英双解、考纲标记等功能
    • 支持流行 AI 模型(需要 API-KEY)对单词进行总结、助记及和情境故事生成
  • 便捷的数据导入:支持欧路词典生词本一键导入并批量处理单词列表,自动生成卡片
  • 优良的命令行体验:显示处理进度,支持记录错误、支持丰富的命令行参数
  • 支持 Docker 运行、支持 PyPI 安装

卡片预览

每张单词卡片包含丰富的学习资源,结构清晰,内容全面:

  • 正面:词头、发音、音标 + 考试大纲标签(如 中高考、CET4、CET6、GRE 等)
  • 背面:
    • 释义:中文(ECDICT)、时态(AI)、释义和词性比例(《有道词语辨析》加强版
    • AI 生成词根 + 辅助记忆(联想记忆 + 谐音记忆)
    • 短语 + 例句(有道爬虫)
    • 单词辨析(单词释义比例词典
    • 英文释义(目前来自 ECDICT)+ AI 生成故事

背面

使用

快速开始

# 直接使用 pip 安装
pip install apkger

在使用 apkger 之前,你需要先在 config/config.json文件中填写相关配置信息:

{
  "API_KEY": "your-api-key-here",
  "API_BASE": "https://api.openai.com/v1",
  "MODEL": "gpt-4o",
  "PROXY": "127.0.0.1:7890",
  "EUDIC_TOKEN": "your-eudic-token",
  "EUDIC_ID": "0",
  "DECK_NAME": "anki_packager"
}
  • 如果需要 AI 功能,必须配置 API_KEYMODELAPI_BASEPROXY
  • 如果需要使用欧路词典生词本:先按照欧陆官方获取 TOKEN,然后使用apkger --eudicid 选择 ID 写入配置文件

下载字典

下载字典到配置目录中(注意名称不要错):

  • Linux/MacOS: ~/.config/anki_packager/dicts/
  • Windows: C:\Users\<用户名>\AppData\Roaming\anki_packager\dicts\

字典数据(感谢skywind)下载地址:

字典下载完毕后,解压和处理交给 anki_packager 即可。

运行

目前软件没有 UI 界面,只支持命令行运行,下面给出一些参考:

# 查看帮助信息
apkger -h

# 从默认生词本读词生成卡片
apkger

### 关闭 AI 功能
apkger --disable_ai

### 从欧路词典生词本导出单词,生成卡片(需要先配置)
## 先查看 ID 写入配置文件
apkger --eudicid
## 生成卡片
apkger --eudic
方式一:Conda 环境
# 创建并激活一个名为 apkg 的 Python 3.9 虚拟环境
conda create -n apkg python=3.9
conda activate apkg

# 安装项目依赖
pip install -r requirements.txt

# 查看帮助信息
python -m anki_packager -h

# 从欧路词典生词本导出单词,生成卡片(需要先配置)
python -m anki_packager --eudic

# 关闭 AI 功能
python -m anki_packager --disable_ai

# 从生词本读词生成卡片
python -m anki_packager
方式二:Docker 容器

如果你希望避免污染本地环境,可以使用 Docker 运行 anki_packager,可以配合 Makefile 使用:

# 构建 Docker 镜像 和 创建持久化卷
make build

# 第一次运行容器下载词典(需要一点时间)
make run

# 进入容器(注意!需要在主机先配置 config/config.json)
# 在容器中运行 anki_packager,生成的牌组会保存在当前目录中
make shell

TODO

  • 集成单词释义比例词典
  • 近一步优化单词卡片 UI
  • 从欧路词典导入生词
  • 支持 SiliconFlow、Gemini
  • 重新支持 Docker
  • 发布到 PyPI
  • 支持更多软件生词导出
  • 支持 Longman 词典
  • 训练现成的数据包发布 release
  • 开发 GUI

Thanks

本项目得到了众多开源项目和社区的支持:

  • 感谢 skywind 开源的 ECDICT 以及其他词典项目,为本项目提供了丰富的词典资源。
  • 感谢 yihong0618 开源的众多优秀 Python 项目,从中获益良多。

如果这个项目对你有帮助,欢迎 Star ⭐️

About

An intelligent, automatic Anki flashcard generator that integrates multiple dictionaries with AI models to create comprehensive English vocabulary cards with definitions, pronunciations, and smart memory aids.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages