ヤドカリプラットフォーム
目的・方針
非エンジニアでもカスタムで制度追加したミニヤドカリくんアプリ(カスタムアプリ)を作れるようなプラットフォームを作りたい
現在のOpenFisca-Japanがベース
そこにカスタムOpenFiscaを派生させ、制度追加でき、「支援みつもりヤドカリくん」の簡易版webアプリまで作れると使用が広がっていきそう
セキュリティの確保:お試しでプレビュー版を作りたい↔リソース確保してカスタムして使っていきたい
ソースコードレベルの分離:ベースのOpenFisca-Japanリポジトリとそこから分離・派生したリポジトリ
制度のロジック・パラメータのレベル
サーバーレベルの分離
実際に(少額だがお金を出して)誰がサーバーを立てるか
限定ユーザーに公開するのであれば、防窮研・proj-inclusiveでもってサーバー整備することも可能?
ヤドカリハーネスのアイデア自体がシビックテックとしての関わりしろを増やすという発想から始まったので、完全統合よりもボトムアップで進めたほうがよい?
furuhashi.iconヤドカリプラットフォームのwebアプリデモのたたき台を作って共有
https://scrapbox.io/files/6a51a177be32792658d99042.png
カスタムアプリのバックエンド
Coreパッケージ:API、ドメイン固有言語(DSL)、およびテストツールを提供
国パッケージ (OpenFisca-Japan):parameter(制度の定数)、variable(制度)、entity (世帯・世帯員)を定義
拡張パッケージ:国パッケージを継承しparameter、variableを追加・再定義。entityは追加・再定義しない
日本の自治体や組織はOpenFisca-Japanを継承した拡張パッケージを用いる。
自治体間・組織間では制度を共有しない。共有すべきものは国パッケージに実装
GithubのリポジトリもOpenFisca-Japanとは別
カスタムアプリのフロントエンド
OpenFisca-Japanに対応している「支援みつもりヤドカリくん」の簡易版のテンプレートを用意
一問一答方式、見積もり結果表示方法など基本的なGUIは同じ
テーマカラーやページタイトル、ロゴなどのデザインはカスタムできるようにする
カスタムアプリ作成プラットフォーム
カスタムアプリ作成者の手順
0. アカウントを作成・申請し、特定のカスタムアプリの作成権限を得て、ログインする
1. 入力欄に追加したい制度の名称と計算方法の説明(説明HPのURLも可)を入力
2. 計算ロジックの分かりやすい説明と図が示される
3. 作成者は対話的にロジックの理解を深め、間違いがあれば自然言語で修正指示する。→説明と図が更新(バックエンドが対応)
ロジックそのものが誤っていないか
コーナーケース、例外ケース、煩雑なケースにどこまで対応するか
カスタムアプリのユーザーに求める必須入力とオプション入力の区別
4. ロジック(バックエンド)の修正が完了したらカスタムアプリのプレビューが表示される
5. 作成者は自然言語でカスタムアプリGUIの修正指示
6. GUI(フロントエンド)の修正が完了したら公開サーバーにpull requestが作成される
7. カスタムアプリ管理者によってPRがマージされたら公開サーバーにデプロイされる
プラットフォームの内部の挙動
0. supabaseなどの外部認証基盤を使って、管理者ダッシュボードから申請アカウントへの権限付与。以降はログイン時にユーザーの認証
1&2. LLMのAPIに制度の計算方法の説明とURL、ヤドカリハーネスを入力し、分かりやすい説明と図示(Mermaid記法等)を出力させる。同時にOpenFiscaバックエンド実装も出力させる
LLMのAPI利用料はひとまずプラットフォーム所有者(防窮研・proj-inclusive)がもつ?
API利用料が膨れ上がらないよう、モデルの種別や対話回数、総トークン数を制限する必要があるかも
クラウド上のAIエージェントがテストにパスするコードを作成しても良い。品質は上がりそうだが、待ち時間とコストが懸念。
3. 作成者とLLM APIを媒介し、説明・図示・バックエンド実装を修正する
4. バックエンド実装とヤドカリハーネスをLLM APIに入力し、フロントエンド実装を出力させる。プラットフォームに仕込まれているヤドカリフロントエンドのテンプレートを使って、カスタムアプリのプレビューを表示
クラウド上のAIエージェントがテストにパスするコードを作成しても良い。品質は上がりそうだが、待ち時間とコストが懸念。
5. 作成者とLLM APIを媒介し、フロントエンド修正
6. カスタムアプリのリポジトリを作成し、バックエンド実装とフロントエンド実装のpull requestを作成
GithubのMCPを用いる。アカウントはプラットフォーム所有者(防窮研・proj-inclusive)
7. カスタムアプリ管理者はPRを確認・修正しマージ
AIエージェント、フロントエンドサーバー・バックエンドサーバー(Google Cloud)のMCPを用いて一部自動化も可能か。アカウントはプラットフォーム所有者(防窮研・proj-inclusive)