ククログ

株式会社クリアコード > ククログ > > クリアコード年表アプリにThunderbirdアドオンの実装を追加しました #cc20th

クリアコード年表アプリにThunderbirdアドオンの実装を追加しました #cc20th

今月29日開催のクリアコード20周年記念Meatup参加申し込みページ)に向けて準備を進めている結城です。

クリアコード年表で使用可能なOutlook用のOfficeアドインに続いて、Thunderbird用のアドオンも作ってみましたので、こちらで紹介いたします。

今回作成したThunderbird1アドオン2「CC 20th Anniversary Timeline」(以下「年表アドオン」)は、「クリアコード年表3へのイベントの投稿操作」を補助するものです。 具体的には、公開のWebページのURLをアドオンに渡すと、その記事の内容を要約したテキストを伴ったイベント投稿画面が自動的に開かれて、そのままイベントを投稿できます。 このククログの記事やプレスリリースなど、既存のWebページを手がかりに年表を充実させる役に立つはずです。

インストール

Thunderbirdのアドオンは一般的にはThunderbird Add-onsからダウンロード・インストールしますが、年表アドオンはこちらのサイトには掲載していません。 クリアコード年表のリポジトリーにXPIパッケージを含めてあるので、以下のリンク先のページからファイルをダウンロードして下さい。

その後、Thunderbirdのアドオンマネージャーにファイルをドラッグ&ドロップすればインストールできます。
(スクリーンショット:アドオンマネージャーへのアクセス)

また、このアドオンでは、記事の要約を自動生成するためのバックエンドとしてOllama経由でローカルLLMを使用します。 未導入の場合は、以下のリンク先の説明に従ってOllamaをインストールして下さい。 Windowsではインストーラーからのインストールがお勧めです。

初期設定

Ollama用の言語モデル(LLM)のダウンロード

新規にOllamaをインストールした場合は、別途言語モデルのダウンロードも必要です。 Ollamaは言語モデルをローカルで動かすための仕組みだけを提供しており、その脳味噌である言語モデルは都度ダウンロードしなくてはなりません。

Windows版Ollamaの場合はコマンドプロンプトを、それ以外の環境の場合は端末エミュレーターを開いて、ollama pull 言語モデル名 という書式でコマンドを実行すれば、指定した言語モデルのファイルがダウンロードされます。

使用可能な言語モデルはOllamaのサイトに多数掲載されていますが、最適なモデルは実行環境の性能と目的によって変わってきます。 よく分からない場合、ChatGPTやGeminiなどの生成AIチャットに、自分のPCの搭載CPU、搭載GPU、搭載RAM量を添えて「どのモデルが適切か教えて」のように訊ねてみるとよいでしょう4。 開発時には「Gemma 3 4B」というモデルを使用しましたが、この場合は以下の要領です。

ollama pull gemma3:4b

ThunderbirdアドオンからのOllamaのAPIの呼び出しを許可

Ollamaは他のアプリケーション向けにREST APIを提供しており、ローカルHTTPサーバー経由で利用できます。 が、実際にThunderbirdアドオンからOllamaのAPIにアクセスしようとするとエラーになってしまいます。 これは、セキュリティ上の理由から、OllamaのAPIは呼び出し元がローカルで動作するWebアプリケーションやVisual Studio Codeなどだけに制限されているためです。 Thunderbirdのアドオンは内部的には moz-extension://782bbf61-9810-4df0-b0a7-f25385fce302/background.html のような特殊なURLのWebアプリのように振る舞うため、そのようなURLのWebアプリからの利用を許可するようOllamaを設定する必要があります。

OllamaのAPIの呼び出し許可は、OLLAMA_ORIGINS という環境変数で行います。 Windowsの場合、「設定」→「システム」から「システムの詳細設定」を開きます。
(スクリーンショット)
次に、開かれたダイアログの「環境変数」ボタンをクリックします。
(スクリーンショット)
「システム環境変数」または「(現在のユーザー)のユーザー環境変数」に OLLAMA_ORIGINS という名前で項目を作り、値を moz-extension://* と設定します5
(スクリーンショット)

環境変数を再設定したら、Ollamaのサーバーを再起動します。 Windowsの場合は、タスクトレイのOllamaのアイコンをクリックして「Quit Ollama」を選択して終了させます。
(スクリーンショット)
その後、スタートメニューの検索欄から「Ollama」を検索して実行します。
(スクリーンショット)
これで、OllamaのHTTPサーバーが再度起動します。後は、OllamaのGUIのウィンドウは閉じてしまって構いません。

クリアコード年表へのログイン

年表にイベントを投稿するためには、GitLabかGitHubのアカウントでのログインが必要です。 Thunderbirdのアドオンマネージャーで「CC 20th Anniversary Timeline」の項目を探して、スパナのアイコンをクリックして設定画面を開いて下さい。
(スクリーンショット)

設定画面内の「認証」ボタンをクリックすると、新規タブでクリアコード年表が開かれます。
(スクリーンショット)
Webブラウザー上での操作と同じ要領でGitLabかGitHubにログインします。
(スクリーンショット)
ログインが完了したら、このタブは閉じてしまって構いません。

なお、Ollamaに複数の言語モデルをダウンロード済みの場合、年表アドオンはその中で最初に検出された物6を自動的に選択します。 自動選択されたモデルが用途に合っていない場合は、この設定画面で適切なモデルを選択し直して下さい。

イベントを投稿してみる

イベントの投稿は、自分のメールアドレス宛に、本文に何らかのWebページのURLを記載したメールを送るという操作で行います。

実際にやってみましょう。新規メッセージ作成を開始して、差出人アドレスと同じアドレスを1つだけ宛先(To)に入力します。また、本文にはイベントの元ネタとなるWebページのURLを貼り付けておきます。
(スクリーンショット)
メールを送信して、そのメールが受信されると、アドオンがそれを検知して要約を開始します。いつまで経っても先に進まない場合は「キャンセル」で処理を中止することもできます。
(スクリーンショット)
要約ができたら、年表のイベント投稿画面が自動的に開かれます。この時、フォームにはWebページの要約、日付、URLが埋まった状態となっています。
(スクリーンショット)
内容を確認して適宜修正し、タグを任意で追加してから「保存」ボタンをクリックすれば、イベントの投稿は完了です。

ククログの印象的な記事やクリアコードの印象的なプレスリリースなどがあった方は、そのURLをこのアドオンを使ってイベントとして年表に投稿し、皆さんの記憶に刻まれているエピソードをコメントしてみて下さい。

まとめ

以上、クリアコード年表へのイベント投稿を補助するThunderbirdアドオン「CC 20th Anniversary Timeline」の使い方をご紹介しました。

この年表アドオンは、Thunderbirdアドオンで以下のことを行う技術デモとなっています。

  • メールの受信をきっかけとして、メールのヘッダーと本文の情報を使って任意の処理を行う。
  • ローカルLLMにアドオン組み込みのプロンプトを投げて、安定した結果を得る。
  • アドオン独自のUIとしてダイアログウィンドウを開き、その内容を動的に更新しつつ、ローカルLLMの処理の完了を待つ。処理が完了したら、ダイアログを自動的に閉じて処理を先に進める。
  • WebアプリのUIを自動操作して投稿フォームを表示する。

詳しく知りたい方は、クリアコード年表の実装のリポジトリーの webextensions 配下をご覧になるか、イベント当日に結城までご質問ください。

また、このクリアコード年表に関しては他にも以下のような記事があります。 当社の手がける様々な技術分野のデモンストレーションになっていますので、併せてご覧頂ければ幸いです。

当社ではThunderbirdの法人向け技術サポートを有償にて承っており、その一環として今回のようなThunderbirdアドオンの開発も行っております。 Thunderbirdの法人運用でお困りの運用ご担当者さまがおられましたら、お問い合わせフォームよりお気軽にご相談ください。

  1. Thunderbirdは、MZLA Technologies Corporationが開発・公開している、WebブラウザーのFirefoxと共通の技術基盤に基づくEメールクライアントです。Eメールの送受信のみにとどまらず、CardDAVによるリモートアドレス帳同期、カレンダーによるスケジュール管理、各種サービスでのチャットなどにも対応しています。メールをローカルに保存してオフライン状態で使用できることや、外観のカスタマイズによってクラシカルなEメールクライアントの装いでも使えることなどから、法人での利用事例が多く、当社では日本国内の法人ユーザー向けに有償での技術サポートサービスを提供しています。

  2. ThunderbirdはFirefoxと同様に、アドオンで機能を追加できます。当社ではサポートサービスのお客さまから頂いたご要望に基づいて、サービスの一環としてアドオンの開発やメンテナンスを行っています。メール誤送信対策ツールのFlexConfirmMailは、その代表例です。

  3. クリアコード設立から現在に至るまでの出来事をタイムライン形式で表示するWebアプリケーションです。GitHubまたはGitLabアカウントでログインすると、誰でも任意の日付の出来事をタイムライン上に追加できるようになっています。詳しくは紹介記事をご覧下さい。

  4. 筆者は「ノートPC(Intel(R) Core(TM) Ultra 7 255H (2.00 GHz)、Intel(R) Arc(TM) 140T GPU (16GB) (128 MB)、32GB RAM)でOllamaを使ってHTMLの本文を要約させたいです。対象のページは日本語で書かれています。最低限の精度は欲しいですが、実行速度もそれなりに高速なものが良いです。おすすめのモデルを教えて下さい。」と訊ねたところ、qwen3:8bgemma3:4b をお勧めされました。筆者が年表アドオンの開発時にそれぞれ試してみたところ、gemma3:4b で安定した結果を得られるようだったので、開発環境ではこちらを使うことにしました。

  5. Thunderbirdアドオン以外からも利用する場合は、既定値の最後に ,moz-extension://* を加えて http://localhost,http://localhost,https://localhost,http://localhost:*,https://localhost:*,http://127.0.0.1,https://127.0.0.1,http://127.0.0.1:*,https://127.0.0.1:*,http://0.0.0.0,https://0.0.0.0,http://0.0.0.0:*,https://0.0.0.0:*,app://*,file://*,tauri://*,vscode-webview://*,vscode-file://*,moz-extension://* のようにします。

  6. 大抵は、最後にダウンロードした物です。