Chat with Card

AnkiWeb addon 1466614056

Adds AI chat to Anki cards, answers questions, saves conversations to cards, and supports OpenAI plus Claude Code and Codex CLI providers.
AI-generated summary; may contain mistakes.

ainote-management

Open on AnkiWeb GitHub Ask about alternatives

AnkiWeb

Rating
1 (👍 0 · 👎 1)
Updated
2026-04-26
Anki versions
25.07.5~
Description language
en

Maintenance

active

  • Last update or commit was 158 days before the snapshot (2026-04-26).
  • The repository has 12 test files.
  • The repository has 2 GitHub Actions workflows.

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
2.1.025.07.5+2026-04-26
History across monthly snapshots

Loading…

Similar addons

Ashki

Adds an AI chat side panel to Anki for card help, note generation, flashcard creation, voice Q&A, and customizable themes, using your own API key privately.

card-creationai

Rating 0 👍 0 · 👎 0 Anki 2.1.1~ Updated 2026-07-13
Ankisstant

Captures missed QBank questions, uses AI to find and re-rate matching cards as Again, then supports gap-based browsing and card creation.

card-creationaischedulingsearchcloze

Rating 0 👍 0 · 👎 0 ⭐ 0 Anki 25.09.4~ Updated 2026-06-10

README

Anki AI Chat Tool

一个为Anki卡片提供AI聊天功能的插件,使用OpenAI API帮助用户更好地理解和学习卡片内容。

功能特点

  • 🤖 AI对话: 与AI就当前卡片内容进行对话
  • 💬 智能问答: 询问解释、举例、记忆技巧等
  • 💾 对话保存: 将有用的对话保存到卡片中
  • 🎨 友好界面: 简洁直观的聊天窗口
  • 🔒 安全可靠: 完善的错误处理和输入验证

安装要求

  • Anki 2.1.45+
  • Python 3.7+
  • OpenAI API密钥

安装步骤

1. 安装依赖

pip install openai

2. 安装插件

  1. 下载插件文件到Anki插件目录
  2. 重启Anki
  3. 在插件管理中启用"Anki AI Chat Tool"

3. 配置API密钥

  1. 获取OpenAI API密钥 (https://platform.openai.com/api-keys)
  2. 在插件配置中替换占位符密钥:
    {
      "openai_api_key": "your-actual-api-key-here",
      "openai_model": "gpt-3.5-turbo",
      "max_tokens": 500,
      "temperature": 0.7
    }
    

使用方法

1. 基本使用

  1. 在Anki中复习卡片
  2. 查看答案后,点击"🤖 Ask AI"按钮
  3. 在弹出的聊天窗口中输入问题
  4. AI会基于当前卡片内容回答问题

2. 常见用法示例

请求解释:

  • "Can you explain this concept in simpler terms?"
  • "What are some real-world examples of this?"

记忆技巧:

  • "How can I better remember this information?"
  • "What's a good mnemonic for this?"

深入学习:

  • "What are the related concepts I should know?"
  • "Can you give me practice questions about this?"

3. 保存对话

  • 点击"Save to Card"将有用的对话保存到卡片
  • 对话会添加到卡片背面,标记为"AI Chat History"

配置选项

OpenAI设置

  • openai_api_key: OpenAI API密钥
  • openai_model: 使用的模型 (推荐: gpt-3.5-turbo)
  • max_tokens: 最大回复长度 (默认: 500)
  • temperature: 创造性程度 (0-1, 默认: 0.7)

界面设置

  • chat_window_width: 聊天窗口宽度 (默认: 600)
  • chat_window_height: 聊天窗口高度 (默认: 400)
  • save_conversations: 是否允许保存对话 (默认: true)

其他设置

  • debug_mode: 调试模式 (默认: false)

开发信息

项目结构

anki-ai-chat/
├── __init__.py              # 插件入口
├── config.py               # 配置管理
├── manifest.json           # 插件清单
├── ui/                     # 用户界面
│   ├── chat_dialog.py      # 聊天窗口
│   └── button_injector.py  # 按钮注入
├── services/               # 核心服务
│   ├── openai_service.py   # OpenAI API
│   └── card_service.py     # 卡片操作
└── utils/                  # 工具函数
    └── helpers.py

运行测试

python3 run_tests.py

测试覆盖

  • 47个测试用例
  • 100%测试通过率
  • 覆盖所有核心功能

故障排除

常见问题

Q: 按钮没有出现 A: 检查插件是否正确安装并启用,重启Anki后再试

Q: AI不回复 A: 检查API密钥是否正确配置,网络连接是否正常

Q: 对话保存失败 A: 确保当前有打开的卡片,检查卡片格式是否支持

Q: 界面显示异常 A: 检查PyQt版本兼容性,尝试重启Anki

错误日志

插件会记录错误信息到Anki日志中,可以通过以下方式查看:

  • 启用调试模式: "debug_mode": true
  • 查看Anki控制台输出

隐私和安全

  • 卡片内容会发送到OpenAI进行处理
  • 不会存储或记录用户数据
  • 建议不要在敏感内容卡片上使用
  • API密钥仅存储在本地配置中

许可证

本项目采用MIT许可证。

贡献

欢迎提交问题报告和功能请求!

更新日志

v1.3.0 (2026-04-26)

UX 重做与稳定性修复。

新功能

  • 卡片复习页底部由「按钮」改为输入框 + Send:用户在卡片页直接输入问题,回车或点击 Send 即弹出聊天框,并把这条消息作为首条用户消息自动发出(__init__.py)
  • ChatDialog 新增 initial_message 构造参数,配合 QTimer.singleShot 在事件循环开始后异步发送(ui/chat_dialog.py)
  • pycmd 协议升级:新增 chat_with_card:<encoded>,旧的 ask_ai 仍保留以兼容旧缓存 HTML

UX 改进

  • 聊天框底部精简为单行 [输入框] [Send] [Save to Card],移除 Clear Chat / Close 按钮
  • Save 按钮紧邻 Send 放在右侧,整体布局更紧凑
  • 用户消息改为右侧气泡、AI 回复纯文本左对齐(去掉左侧竖条),更接近主流聊天 UI

Bug 修复

  • 修复多轮对话中只有第一条用户消息靠右的问题:QTextEdit 对 <div align="right"> 的解析会继承前序 cursor 块格式,改为 <table width="100%"><td align="right"> 强制独立 block
  • 修复底部「Chat with Card」按钮聚焦后文字消失的问题(已通过改输入框消除)
  • 流式 / 错误 / 完成态的 HTML 统一走 theme.message_html,夜间模式下不再出现写死的浅色

视觉系统

  • 配色统一为 Anki 经典蓝(accent #0078d4,hover #106ebe),代替之前的橙调
  • 4px 圆角网格、单一 accent 用于主操作与 focus ring
  • Send / Save / 卡片页 Send 三处按钮视觉完全一致

v1.2.1 (2026-04-22)

  • 新增 Claude Code CLI / Codex CLI 作为 AI Provider,支持本地大模型链路(OpenAI / Claude Code / Codex 三选一,可配置回退)
  • 主题系统重构:抽出 ui/theme.py 作为单一来源,支持 Anki 夜间模式自动切换调色板
  • 升级 vendored 第三方库:mistune 3.2.0、requests 2.33.1
  • 引入 pytest 单元测试基础设施,覆盖配置、i18n、theme、各 AI Service Adapter

v1.0.0 (2025-08-26)

  • 初始版本发布
  • 基础AI聊天功能
  • 对话保存功能
  • 完整测试覆盖

支持

如果遇到问题或需要帮助,请:

  1. 查看故障排除部分
  2. 检查错误日志
  3. 提交问题报告

注意: 使用本插件需要OpenAI API密钥,可能产生API调用费用。请合理使用。