Python MIT

anki_packager

An intelligent, automatic Anki flashcard generator designed for Chinese speakers learning English.

Y

yaoyhu

Dernière activité 13 nov. 2025
yaoyhu/anki_packager

186

étoiles

13

forks

3

issues ouvertes

ankipython

Ce README est souvent en anglais.

Logo
anki_packager

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

关于项目

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

核心特性

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

卡片预览

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

  • 正面:词头、发音、音标 + 考试大纲标签(如 中高考、CET4、CET6、GRE 等)
  • 背面:

背面

使用

快速开始

# 直接使用 pip 安装
pip install apkger

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

本项目使用 litellm 统一调用 LLM 服务。关于 MODEL_PARAM 的详细配置方法,请参考 LiteLLM Providers 文档。

PROXY = ""
EUDIC_TOKEN = ""
EUDIC_ID = "0"
DECK_NAME = "anki_packager"

[[MODEL_PARAM]]
model = "gemini/gemini-2.5-flash"
api_key = "GEMINI_API_KEY"
rpm = 10                          # 每分钟请求次数

### OpenAI-Compatible Endpoints 示例
# [[MODEL_PARAM]]
# model = "openai/gpt-4o"
# api_key = "OPENAI_API_KEY"
# api_base = "YOUR_API_BASE"
# rpm = 200

下面是关于配置文件中各参数的详细说明:

  • MODEL_PARAM:

    • model: Provider Route on LiteLLM + Model ID
    • api_key: 对应模型的 API 密钥。
    • api_base: (可选) 仅在模型为 OpenAI-Compatible Endpoints 时需要填写
    • rpm: (可选) 每分钟的请求次数限制,用于控制 API 调用频率。
  • PROXY: 如果你无法直接连接到 AI 服务提供商,可以在这里设置代理服务器地址

  • 如果需要使用欧路词典生词本:先按照欧陆官方获取 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.toml)
# 在容器中运行 anki_packager,生成的牌组会保存在当前目录中
make shell

TODO

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

Thanks

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

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

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

Projets similaires

A curated list of awesome Anki add-ons, decks and resources

ankianki-addonanki-cards
Ttianshanghong
2,1 k étoiles93

Anki cards generator for Leetcode

Pythonankileetcodepython
Ffspv
427 étoiles59

Anki is a smart spaced repetition flashcard program

Rust
Aankitects
31,6 k étoiles3,3 k