覚えられないAnkiカードにフラグを立ててn8nとClaude Codeをつかってカードを自動でアップデートする話

英語学習期間8年をすぎて、自分のAnkiカードは今1万数千枚あるんです。

でも単語ばかりめくってめくって、意味はなんとなくわかる単語も増えてきてはいます。

が、困ったことがひとつあって。

スーツマンは帰国子女でもなければ英語ガチ勢でもない、35歳から1年半かけて英検3級とった初心者から始めたので新しい単語を学ぶのってすごく労力が入ります。覚えようとしないことがコツで、自分は単語に出会う回数をただ単純に多くして、ひたすらフラッシュカードをめくりまくるという覚え方。

でも、難しい単語とかになると日本語では覚えやすいものと覚えにくいものがあって、単語カードも同じものばっかりめくっていつも復習してるものがあります。 たとえば最近やっと数ヶ月かけて覚えた単語は、

indictment(正式な起訴)、alleviate(緩和する)、meticulous(几帳面な)とかなんですが、定義は覚えてるのに、パッと使用イメージが結びつかないので、実践で多分つかえないだろうなと。

こう言った覚えにくい単語は、Ankiカードのレイアウトを変えたり、画像を足したりして覚えやすくする工夫、鮮度を上げることが大事だと思うんです。

でも1万数千枚のうち、どのカードが覚えにくくて、いつこれをアップデート、つまり画像付け加えたり、カードの中身を少し変えて新鮮さをだしたりするため、1枚ずつ手動で探すなんて、正直現実的じゃないなと。

だって、そんな時間あるなら英語勉強したいですも〜〜〜ん

そんなときは、CLAUDE君〜おねが〜〜〜い♪( ´θ`)ノ

スポンサーリンク

「全部」じゃなくて「これはなかなかおぼえれん!」だけに絞る

そこで思い出したのが、Ankiのフラグ機能(赤・青・橙とか、カードに色をつけて分類できる機能)でした。デフォルトでショートカットもついてますよん

Againの回数が多い順に並べても、結局カードが多いとものすごい数になるし。

でもフラグ立てるだけなら「あ、これ覚えにくいな」って自分が思ったときに、その場で赤フラグを立てるだけで済みます。

全部じゃなくて、自分が気になったものだけに絞れるというのが、このやり方の一番のポイントでした。

仕組みの全体像

やりたいことはシンプルで、フラグを立てたカードだけ自動処理すればカードのアップデートが管理できる、という発想です。

  1. Ankiで覚えにくいカードに赤フラグを立てる
  2. n8n(ノーコードで自動化できるツール)が定期的にAnkiConnect(Ankiを外部から操作できる拡張機能)のAPIで「赤フラグのカード」を取得する
  3. 単語と意味から、AIが「記憶に残る場面の説明文」を自動生成する
  4. Pollinations.ai(無料のAIイラスト生成サービス)が画像を生成する
  5. Ankiカードの裏面の一番上に、その画像が自動で挿入される
  6. 気に入らなければフラグを残したまま。次回は違うアプローチで再生成する

カードの文言そのものは変えません。辞書的な定義はそのまま残して、画像だけ追加するという設計にしました。せっかく育ててきたカードの中身をいじりたくなかったんですよね。

あ、ちなみにPollinations.aiを選んだのは無料だったからです。でも品質はそこまで良くないのでまだテストで作ってみただけなんですけど。。。

DALL-E 3だと1枚だいたい6円かかるので、まずは無料で全然いいとおもったので。

再生成は3段階のアプローチで

一度生成して画像がなんかちがう・・・・と気に入らなくても、フラグが残っていればまた再作成もAIに自然言語でたのめちゃうんですよ。 あの画像、なんか変だからもう一回差し替えて っていうだけ。すごいよね〜

で、うまくいかない時は1回目は具体的なシーン、2回目は感情・表情にフォーカス、3回目は抽象・比喩的な表現、と毎回アプローチを変えるようにAIにお願いしています。同じ単語でも切り口を変えれば、どれかしら記憶に引っかかるはずだという考え方です。

一気にフラグ立ってるやつ画像変えちゃって、たとえば赤のフラグはわからないからアップデートしたいカード、で、AIにかえてもらったら緑にして、緑フラッグはアップデートしたやつだなと、そこで学習中にきにいらなければ黄色にして、黄色は再アップデートという意味づけにしてあとでまとめて変えたり。 

あとは学習者さんそれぞれのお好みでAIうごかしちゃえばいいんですよ。

Claude Code(VSCode)からAnkiを直接操作できることに気づいた

n8nでバッチ処理の仕組みを作っている途中で、ふと気づいたことがありました。AnkiConnectはlocalhost:8765で動いているので、VSCode上のCLAUDE君(Claude Code)からも直接叩けるんです。

「Ankiフラグカード見直したい」と言うだけで、フラグカードの一覧表示・リライト提案・更新まで、対話しながら完結できることに気づいたんですよね。え、これわざわざn8nでバッチ化しなくても、1枚ずつ確認しながらできるじゃんと。

なんだ最初からこうすればよかったじゃんと思いつつ、そこで役割を分けることにしました。

n8nはバッチ全自動処理用、CLAUDE君は1枚ずつ確認しながらの対話型、という使い分けです。まとめて流したいときはn8n、「今日はこの単語だけ気になる」というときはCLAUDE君に直接頼む、という感じで両方使っています。

実際にやってみた例

fete(祝祭・もてなす)で、カードを取得→意味を確認→AnkiConnectで更新、というパイプラインを一通りテストしました。ここは想定通りに動きました。

indictment(正式な起訴)は、具体的なシーンの記憶イメージを生成するところまで設計はできています。ただ、これは次に書く「画像API待ち」の話と直結していて……。

詰まってる部分:Pollinations.aiが有料化していた

ここが今の一番の壁です。Pollinations.ai(無料・Flux)を使う予定だったんですが、2026年6月の時点で有料化されていて、402エラーが返ってくるようになっていました。え、無料のはずじゃなかったの…?(;´Д`A

無料だからこそ採用したサービスが、途中で有料化してしまうというのは、この手の無料API活用にはつきものだなと痛感しました。

当面はカード裏面のGoogle画像検索リンクを置いて、手動で探すところで妥協しています。無料のAPIが見つかり次第、再開する予定です。候補としてはHuggingFace Inference APIか、DALL-E 3(1枚6円)に切り替えるか、今のところ検討中です。とりあえず動くところまでは持っていきたいので、ここは焦らず探ります。

セットアップの手順(ざっくり)

  1. AnkiConnectアドオンをインストールする(コード:2055492159)
  2. AnkiのBasicノートタイプに「Image」フィールドを追加する
  3. 裏面テンプレートに{{#Image}}{{Image}}
    {{/Image}}
    を追加する
  4. n8nでワークフローを作成する

使ったAnkiConnect APIまとめ

action用途
findNotesflag:1でフラグカードを取得
notesInfoカードのフィールド内容を取得
storeMediaFile画像をAnkiのメディアフォルダに保存(URLで指定可)
updateNoteFieldsImageフィールドにを挿入

AnkiConnectの設定では、webBindAddress0.0.0.0にすることで、NAS上のn8nからも接続できるようにしています。(TailscaleのIP)経由でエンドポイントを指定しているので、外に出さずに済んでいます。

感想・今のところの状況

n8n=バッチ処理、CLAUDE君=対話型見直し、という役割分担にはかなり納得感がありました♪( ´θ`)ノ

同じAnkiConnectでも使う場面によって向き不向きがあるんだなというのが今回の発見です。

一方で、画像生成のところはまだ保留中です。無料サービスがある日突然有料化するのは、正直予測しようがないんですよね。とりあえず今はGoogle画像検索リンクでしのぎつつ、次の無料枠を探しているところです。

完璧に動く仕組みにはまだなってませんが、フラグを立てる→気になったカードだけ拾う、という設計自体は気に入っているので、画像まわりが解決したらまた記事にしたいと思います。同士の皆さん、覚えられない単語がある人は、まず1枚だけフラグを立ててみるところから試してみてください。

※本リンクはアフィリエイト広告です(PR)

🤖 AIツールをVPSで動かしたい人へ

Claude CodeやDifyなどのAIツールを自前のサーバーで動かしたい場合、ConoHa VPSはスタートアップスクリプトが充実していて選択肢になると思います。セットアップをほぼ自動でやってくれるのは正直助かると思います。

今日学んだの英語表現(B2〜C1)

一応英検1級目指してるスーツマンのこの記事のトピックから使えるフレーズをAIがピックアップ。

① indictment(= 正式な起訴、告発) > The indictment was announced after months of investigation. 「その起訴は数ヶ月の捜査の後に発表された」。ニュース記事でよく見る単語ですが、意味は知ってても場面がイメージしづらい典型でした。

② alleviate(= 緩和する、和らげる) > This medicine helps alleviate the pain. 「この薬は痛みを緩和するのに役立つ」。painやsymptomsとセットでよく使われます。

③ meticulous(= 几帳面な、細部まで注意深い) > She is meticulous about checking every detail. 「彼女はあらゆる細部をチェックすることに几帳面だ」。褒め言葉として使われることが多い単語です。

参照:Cambridge Dictionary

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です