この記事はNTTコムウェア Advent Calendar 2024の1日目の記事です。
こんにちは、NTTコムウェアの平塚です。最近はNintendo World Championshipsファミコン世界大会で各競技Sランクを目指して頑張っています。
今日は趣味で作った生成AIツールをご紹介します。
Summarize and Translate with Gemini
Summarize and Translate with Gemini(Geminiによる要約と翻訳)は、Google Geminiを用いてウェブページを要約、翻訳するブラウザ拡張機能です。Chrome / Edge / Firefoxに対応しており、無料でご利用いただけます。
ワンクリックで要約
使い方はとても簡単で、ウェブページを開いて拡張機能のアイコンをクリックするだけです。これで現在開いているウェブページが要約されます。デフォルトのショートカットキーとしてAlt+Gを使うこともできます。
YouTube動画に対応
YouTube動画の要約にも対応しています。
Androidに対応
Firefox版はAndroidにも対応しています。
選択してワンクリックで翻訳
テキストを選択してから拡張機能のアイコンをクリックすると選択範囲が翻訳されます。以下の言語に対応しています。
英語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語(ブラジル)、ベトナム語、ロシア語、アラビア語、ヒンディー語、ベンガル語、中国語(簡体)、中国語(繁体)、日本語、韓国語
アクセス権限不要
Chrome Web Storeではインストール時に「すべてのウェブサイト上にある自分の全データの読み取りと変更」というアクセス権限を要求する拡張機能が少なくないのですが、本ツールはアクセス権限を何も要求しないので安心してご利用いただけます。
Gemini APIの無料プランで利用可能
利用にはGemini APIキーが必要です。Gemini APIキーはGoogle AI for Developersのページで取得できます。
Gemini APIには無料プランが用意されているので費用負担なく試してみることができます。なお無料プランの場合は送信したデータがモデルの学習に用いられますので、留意してください。
開発者向け情報
ソースコードについて
GitHubでソースコードを公開しています。MITライセンスです。
プロンプトについて
要約で用いているプロンプトを以下に示します。
Summarize the entire text as up to ${numItems}-item Markdown numbered list
in ${languageName} and reply only with the list.
Format:
1. First point.
2. Second point.
3. Third point.
箇条書きの項目数を生成AI任せにせず明示的に指定しているところがポイントです。ここを生成AI任せにすると短い文章でも項目数が多くなりがちで、勝手に感想を語り始めるなどハルシネーションを起こす傾向がありました。それを防ぐために文章の長さからざっくりと項目数を算出して与えるようにしています。
それからGemini 1.0 Proを利用していたころは言語指定を無視して元の文章の言語で回答してしまうことが多々ありました。これはプロンプトの工夫ではどうしても直すことができず困っていたのですが、Gemini 1.5 Flashでプロンプトの指示に素直に従うよう改善されました。
文章の分割処理について
本ツールでは生成AIのAPIを呼び出す前に必要に応じて文章を分割しています。例えばGemini 1.0 Proでは入力長の上限が30,720トークン、出力長の上限が2,048トークンとなっているので、要約では30,720トークン以内、翻訳では2,048トークン以内になるように元の文章をあらかじめ分割しています。特に翻訳の場合は入力が長ければ出力も長くなるので、少ない方の上限に合わせておくところがポイントです。
ここもGemini 1.5 Flashで大きく改善され、入力長の上限が34倍、出力長の上限が4倍になりました。実用上は分割処理がほとんど必要なくなっています。
作った感想など
2024年2月に本ツールを作り始めたときはGemini 1.0 Proの品質が低くいまいち実用レベルに達していなかったのですが、2024年5月にGemini 1.5 Flashが利用できるようになって十分使えるツールになりました。その後2024年9月にはGemini 1.5 Flashの出力速度が倍増してさらに便利になりました。
今後はツールのシンプルさを維持しつつ、Geminiの進化に合わせて機能追加などできればと考えています。
本記事の要約
この記事自体を要約してみました。
記載されている会社名、製品名、サービス名は、各社の商標または登録商標です。