Skip to content

bonsai/fillme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

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)

実装のアイデアとフロー

  1. ユーザープロファイルの定義 あらかじめ拡張機能側に、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: 氏名(名))

  1. 実行インターフェース (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文字以内で自己紹介を書いてください」といった自由記述欄に対し、ユーザーの経歴からその場で文章を生成して入力する機能。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published