WindowsでOllamaを用いたLocal LLM環境をセットアップしてObsidianの拡張機能で生成AIによるタグ付けを行ってみた

WindowsでOllamaを用いたLocal LLM環境をセットアップしてObsidianの拡張機能で生成AIによるタグ付けを行ってみた

2025.08.17

さがらです。

WindowsでOllamaを用いたLocal LLM環境をセットアップしてObsidianの拡張機能で生成AIによるタグ付けを行ってみたので、その内容をまとめてみます。

※先に結論として、私のPCでは利用できるLLMに限りがあり精度もあまり良くありませんでした。試した中で一番精度が良かったのはAI Tagger UniverseプラグインでGemini APIのgemini-2.0-flashを用いた場合でした。(他のクラウドサービスのLLMは試せていません。)

検証背景

最近の生成AIの流れも受け、個人のタスク管理や情報整理をNotionからObsidianに移行している最中です。

この移行作業を行う中でObsidian上での情報分類をどう行うか考えていたのですが、バックリンクなどの機能があることも理解した上で色々考えて、「最低限のフォルダ構成でノートをとにかく雑に書けるようにする」、「情報分類はタグをベースに行う」という方針となりました。(参考までに、タスク管理はKanbanを採用しました。)

この方針となった主な理由は、Notion上でも1つのデータベースに全部のページを管理してタグ付けで情報分類を行っていたので、それに近しい運用ができると考えたためです。Tag Wranglerがあればタグの管理もできそうと感じました。

この時、「Obsidianに移行してMarkdownベースでまとめているなら、LLMベースで自動でタグ付けしてくれないかな。でもLLMのコストは抑えたいな。」と雑に感じて調べていたらLocal LLMを利用できる拡張機能がいくつかあったので、「これを試してみよう!」となったことが今回の検証に繋がっています。

前提条件:検証環境について

前提条件として、私は本記事の検証を以下の環境で行いました。

  • OS:Windows 11
    • PC:Surface Laptop 6
    • CPU:Intel(R) Core(TM) Ultra 5 135H 3.60 GHz
    • RAM:16GB
  • ObsidianのVault保存場所:Googleドライブ(Drive for Desktopを入れて、Googleドライブをマウントして利用)

WindowsでOllamaを用いたLocal LLM環境をセットアップ

まず、OllamaをインストールしてLocal LLM環境をセットアップします。

以下のURLから、Windows用のダウンロードを行います。

https://ollama.com/download/windows

2025-08-17_04h03_54

exeファイルを起動し、インストールします。

2025-08-17_04h09_26

Ollamaが起動したらチャット画面が表示されるので、使いたいモデルを選択し適当に質問を行います。これにより、モデルのダウンロードが行われます。(本当はgpt-oss:20bを使おうとしたのですが、500 Internal Server Error: model requires more system memory (13.4 GiB) than is available (13.2 GiB)と表示されてしまいました。`)

2025-08-17_04h57_02

ダウンロードが完了したら、質問に対する回答が返ってきます。これでLocal LLMの準備は完了です!

2025-08-17_05h01_54

生成AIによるタグ付け用の拡張機能の選定

Obsidianには生成AIによるタグ付け用の拡張機能がいくつかあるのですが、ダウンロードが多い順にAI TaggerAI Tagger Universeがあるのでこの2つを試してみます。

  • 参考:AI Tagger Universeの設定画面

2025-08-17_05h22_26

  • 参考:AI Taggerの設定画面

2025-08-17_05h23_06

拡張機能:AI Tagger Universeを試す

ということで、AI Tagger Universeを試します。

https://github.com/niehu2018/obsidian-ai-tagger-universe

セットアップ

Obsidianを開いて、拡張機能をインストールします。

2025-08-17_05h11_27

設定画面を開き、Local LLMの設定を行います。使用するLocal LLMのツールに合わせてエンドポイントも書いてあるのが親切ですね!Model nameは記述式なのですが、deepseek-r1:8bと入力すればOKでした。

2025-08-17_05h27_33

Tagging modeでは、新しいタグを生成するのか、既存のタグだけを使用するのか、この2つのハイブリッドにするのか、を選択可能です。今回はハイブリッドの方法にしてみます。(下図のように設定しました。)

2025-08-17_05h31_35

Excluded files and foldersでは、タグ付けのために不要なフォルダを除外設定できます。

2025-08-17_05h35_36

2025-08-17_05h33_21

残りの設定についてはデフォルトの設定にしておきます。

2025-08-17_05h36_16

実際にタグ付けをしてみる(Local LLMのdeepseek-r1:8bの場合)

以下のNotionからエクスポートしてきたノートについて、拡張機能でタグ付けを行ってみます。ノートを開いた状態で、左のAnalyze and tag current noteを押してみます。

2025-08-17_05h39_42

すると、約90秒後にObsidianの画面の右上に下図のようにタイムアウトの表示がされました…。

2025-08-17_05h44_25

先程のノートは6212文字だったので、もっと軽量な822文字のノートで行ってみましたが、結果は変わらずタイムアウトでした…

2025-08-17_05h48_00

2025-08-17_05h50_11

実際にタグ付けをしてみる(Local LLMのgemma3:1bの場合)

deepseek-r1:8bが自身のPCだと耐えられないのではと仮定して、gemma3:1bで再度試してみます。

2025-08-17_05h55_13

すると、先程deepseek-r1:8bでは失敗したタグ付けが、無事に成功しました!6212文字の方はボタンを押してから10秒ほど、822文字の方はボタンを押してから4秒ほどでタグ付けが行われました。

しかし、matchedExistingTags-BigQuerysuggestedTags-networkなど、タグに本来不要な文字列が入っていたり、matchedExistingTagsと書いてあるけれどBigQueryタグはまだ作成していなかったり、という精度としては悩ましい状況でした…

2025-08-17_05h58_11

2025-08-17_05h56_17

実際にタグ付けをしてみる(Local LLMのqwen3:4bの場合)

Local LLMでもう一度別のモデルとして、qwen3:4bでも試してみます。

2025-08-17_06h12_26

しかし、822文字のノートでもタイムアウトとなりました…。

2025-08-17_06h14_49

実際にタグ付けをしてみる(Gemini APIのgemini-2.0-flashの場合)

最後に、本来の趣旨とは離れているのですが、クラウドサービスを用いた場合にどうなるかも確認してみます。Google Cloudプロジェクトがあればすぐに発行できるGemini APIでgemini-2.0-flashを使用してみます。

2025-08-17_06h28_43

すると、6212文字も822文字のノートも、どちらもボタンを押してから1秒ほどでタグ付けが行われました!タグ付けの精度もLocal LLMのgemma3:1bより良さそうです。

2025-08-17_06h31_37

2025-08-17_06h29_32

おまけに私のノートの中でも最長クラスの165516文字のノートでも試してみたのですが、これも1秒ほどでタグ付けが行われました!クラウドサービスの力は凄いですね…

2025-08-17_06h34_29

拡張機能:AI Taggerを試す

もう一つの拡張機能であるAI Taggerも試してみます。(Local LLMは私の環境だと難しそうということがわかったので、AI TaggerではGemini APIだけ試します。)

https://github.com/lucagrippa/obsidian-ai-tagger

セットアップ

Obsidianを開いて、拡張機能をインストールします。

2025-08-17_06h39_59

こちらの拡張機能の設定はシンプルで、API Keyと使用するモデルを入れるだけで設定は完了となります。

2025-08-17_06h41_17

実際にタグ付けをしてみる(Gemini APIのgemini-2.0-flashの場合)

タグ付けを行う際は、対象のノートを開いてGenerate tags!を押すだけです。

2025-08-17_06h43_59

実際にタグ付けを行った結果が以下となります。それぞれタグの生成自体は1秒ほどで行うことが出来ました!しかし、各ノートの中で全く関連のないDockerredisclippingのタグがついたり、Dockerdockerで表記揺れしている点が見受けられました。

2025-08-17_06h45_02

2025-08-17_06h46_20

2025-08-17_06h47_06

まとめ

実際に検証を行ってみたまとめは、下記のとおりです。

  • Local LLM
    • 私のPC(Surface Laptop 6)では、gemma3:1bしかまともに動かなかった
    • gemma3:1bでは、タグ付けの精度に怪しいところがあった
  • クラウドサービスのLLM
    • Gemini APIでgemini-2.0-flashだけを試したが、165516文字のノートであっても1秒でタグ付けが行われた。クラウドサービスは凄い…
  • Obsidianの生成AIを用いたタグ付けの拡張機能
    • AI TaggerとAI Tagger Universeを試したが、同じモデルで試したときのタグ付けの精度はAI Tagger Universeの方が優れていた
    • ただ、100%そのままのタグ付けを利用できるかというとそうではないため、自分の場合はベースラインのタグ付けを行う際に利用するレベルに留まりそう

今回の検証を通して、Local LLMもそんな簡単ではないことをしみじみと感じましたね…。

今後の展望としては、Claude Codeなど使ってコンテキストを明確にしながらタグ付けを指示すると、より良い結果が得られるかもしれないと感じています。時間が取れたらこちらもやってみます!

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.