【AI】Chromeに組み込まれたGemini Nanoを使ってみる

# TL;DR

Xを徘徊していたら、「ChromeでGemini（GoogleのAI）をローカル実行したよ」というポストを見かけたので試してみる。

https://x.com/mortenjust/status/1805190952358650251

（このポストを見かけた2024年6月末頃に一度試そうとしたが、そのときはまだ手元のChromeでは使えなかった。2024年8月末時点でようやく使えるようになったのを確認したのでその手順をメモ）

# 準備

元情報を辿ってみると、2024年の5月頃にGoogleが「Chrome 126からGemini Nanoを組み込むよ」という告知をしていた。

https://x.com/Google/status/1790488785483927580

当時いろいろ調べてみると、Chrome組み込みのGeminiを「Chrome Devで試した」やら「Chrome 128 Canaryで試した」やら情報がちらほらありましたが、いまはStable版でいけるはず。
（もしできなかったら他のChromeも試してみてください）


### 参考）[５種類のChrome](https://developer.chrome.com/docs/web-platform/chrome-release-channels?hl=ja)

| 種類            | 概要                                                                                     | ダウンロードリンク                    | 
| --------------- | ---------------------------------------------------------------------------------------- | ------------------------------------- | 
| Stable          | 安定版。無印。おそらくみんな使っているやつ。                                             | https://www.google.com/chrome/        | 
| Extended Stable | 機能更新のアップデート頻度を下げた安定版。これだけダウンロードリンクがないらしい。       |                                       | 
| Beta            | ベータ版、おおよそ１つ先のバージョン、毎週更新。                                         | https://www.google.com/chrome/beta/   | 
| Dev             | 開発版、おおよそ２つ先のバージョン、毎週更新。                                           | https://www.google.com/chrome/dev/    | 
| Canary          | 開発最新版、日々開発されているバージョン、毎日更新。テストバージョンのため、一番不安定。 | https://www.google.com/chrome/canary/ | 

- [Chromeの開発ロードマップ](https://chromestatus.com/roadmap)

## Chromeのバージョン確認
そもそも今自分が使っているChromeのバージョンが分からないと話が始まりません。アドレスバーに`chrome://settings/help`（もしくは`chrome://version`）と打ち込むと、現在のChromeのバージョンが確認できます。今回私の手元では<font color=red><b> Stable版のChrome 128</b></font>で確認しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/afd07a84-f06c-6679-e6e9-51adf8eb96e6.png)

## 設定の有効化
さらに、新機能を有効にする設定をします。
アドレスバーに`chrome://flags`と入力し、以下の２つのフラグを有効にする必要があります。

| フラグ                               | 値                            | 
| ------------------------------------ | ----------------------------- | 
| Enables optimization guide on device | Enabled BypassPerfRequirement | 
| Prompt API for Gemini Nano           | Enabled                       | 


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/38c56147-ae6f-f597-c768-c78c19e15396.png)



## Geminiモデルのダウンロード

設定を有効化したあと、使用する前にGemini Nanoのモデルをダウンロードしておく必要があります。アドレスバーに`chrome://components`と入力して`Optimization Guide On Device Model`の「アップデートを確認」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/8d914446-1c8a-8896-7021-4e916fc23225.png)


::: note warn
[こちら](https://zenn.dev/yamitzky/articles/2ca31adf69fcb9)の記事によると、当初`Optimization Guide On Device Model`が表示される環境とそうでない環境がありました（私もこのハズレ環境でした）が、恐らくいまは使えるようになっているはず。
:::

設定を有効化してから`Optimization Guide On Device Model`が表示されるまで少しタイムラグがあります。開発者ツールでコンソールを開き、以下を実行してみてください。初めはステータスが`no` となっているところから `after-download`と表示されるようになると`chrome://components`の画面でも`Optimization Guide On Device Model`が表示されているはずです。

```
await window.ai.canCreateTextSession()
```

https://x.com/hine/status/1826809410636914897

https://x.com/wmoto_ai/status/1826584742705463360


# Gemini Nanoを試す

Chromeで `window.ai`オブジェクトが使用できるようになりました🎉

```
const canCreate = await window.ai.canCreateTextSession();
const session = await window.ai.createTextSession();
await session.prompt("Goole Cloudについて教えてください");
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/b102e874-3a07-8a27-c0a3-1d78af88a6e3.png)


その他のAPIの使い方や最新のアップデートは以下のGoogle Docsで公開されています。

https://docs.google.com/document/d/1VG8HIyz361zGduWgNG7R_R8Xkv0OOJ8b5C9QKeCjU0c/edit

# 参考

https://azukiazusa.dev/blog/try-chrome-internal-ai-gemini-nano/

https://zenn.dev/hatappo/scraps/ca2c8f9ce9f97a