README.md (Draft) Project Name: SmartFill AI (Powered by Gemini Nano) 概要 SmartFill AI は、Google Chromeの組み込みAI「Gemini Nano (Window.ai)」を活用した、次世代のフォーム自動入力拡張機能です。 従来の正規表現ベースのマッチングではなく、LLMがフォームの文脈(ラベル、プレースホルダー、前後の項目)を解析し、ユーザープロファイルから最適な値を抽出・入力します。
主な機能 Semantic Form Analysis: 「氏名(姓)」と「氏名(名)」が分かれている場合や、独自のラベル名がついている場合でも、LLMが文脈を判断して正しくマッピングします。
On-Device Processing: Gemini Nanoを使用するため、入力データや個人情報は外部サーバーに送信されず、すべてブラウザ内で完結(プライバシー保護)します。
One-Click Completion: 複雑なアンケートや登録フォームを、右クリックメニューまたは拡張機能のポップアップから一括で入力します。
技術スタック Core: Chrome Extension Manifest V3
LLM Engine: Window AI (Chrome built-in Gemini Nano)
Language: TypeScript / React (Popup UI)
実装のアイデアとフロー
- ユーザープロファイルの定義 あらかじめ拡張機能側に、LLMが参照するための「マスターデータ」をJSON形式で保持させます。
JSON
{ "lastName": "hoge", "firstName": "piyo", "organization": "株式会社〇〇", "bio": "AIエンジニアとして活動..." } 2. プロンプトエンジニアリングの例 フォーム内の input 要素を抽出したあと、以下のようなプロンプトを Gemini Nano に投げます。
System Prompt: あなたはフォーム入力のアシスタントです。以下のユーザープロファイルと、検出されたフォーム項目のリストを比較し、各項目に入力すべき値をJSON形式で返してください。
User Profile: { "姓": "hoge", "名": "piyo", "所属": "AIラボ" }
Target Fields:
ID: name_1 (Label: 氏名(姓))
ID: name_2 (Label: 氏名(名))
- 実行インターフェース (Window.ai) JavaScript
// Gemini Nanoを呼び出す基本コード const session = await window.ai.createTextSession(); const result = await session.prompt("上記プロンプト..."); const fillData = JSON.parse(result); // 各要素の value にセット 開発のステップ ChromeのAI機能を有効化:
Chrome Canary または最新版で chrome://flags/#optimization-guide-on-device-model を有効にする。
chrome://components で「Optimization Guide On Device Model」を更新する。
DOM解析スクリプトの作成:
Content Scriptで、ページ内の label や placeholder を抽出し、LLMが理解しやすいテキストリストに変換する。
マッピングエンジンの構築:
LLMからの回答(JSON)を受け取り、実際のDOM要素に値を反映させるロジックを実装する。
今後の展望 Dynamic Adaptation: 「100文字以内で自己紹介を書いてください」といった自由記述欄に対し、ユーザーの経歴からその場で文章を生成して入力する機能。