Route A Phase 1 : Setup

A-01:OKIHIRO流 "AI建築"

拡張性と保守性を生むフォルダ構成(Python編)

AIに「家を建てて」と頼むと、AIはとりあえず動く家を建ててくれます。しかし、その家は基礎が弱く、増築も難しいかもしれません。

プロの建築家(アーキテクト)は、まず強固な「設計思想(フレームワーク)」に基づいて基礎工事を行います。
このレッスンでは、私が数々のPythonツール開発で培ってきた「OKIHIRO流フレームワーク」、すなわち "AI建築" の設計図と、そこで扱う「データの型」について学びます。

1. 拡張性を生む「フォルダ構成」

全てのコードを1つのファイルに書くのは簡単ですが、すぐに破綻します。私たちの目的は、将来の自分が楽をするため、そしてAIが改修しやすいツールを作ることです。

[Project Root]
MyTool/
├── gui/ (操作画面のコード)
│ └── modules/ (タブごとの画面部品)
├── input/ (ツールが読み込むファイル置き場)
├── output/ (ツールが成果物を吐き出す場所)
├── scripts/ (メインの処理を書くコード)
│ └── runners/ (機能ごとのテスト実行用バッチ)
├── lib/ (共通の便利機能をまとめた場所)
├── system/ (設定ファイルやAPIキー)
├── prompts/ (AIへの指示書:魔法の呪文)
├── _run.bat (実行ファイル)
└── _setup.bat (初期設定ファイル)

2. 各パーツの役割

① 実行ファイル (_run.bat, _setup.bat)

ユーザーが最初に触る「玄関」です。複雑なコマンドを覚えなくても、ダブルクリックするだけでツールが動くようにするためのスイッチです。

② 設定ファイル (system/)

APIキーやツールの動きを変更するための「設定パネル」です。コード本体をいじらずに設定を変えられるようにすることで、安全性が高まります。

③ 指示書 (prompts/)

AIへの命令文(プロンプト)を保管する「作戦司令室」です。AIの挙動を変えたい時、私たちはプログラム本体ではなく、この中のテキストを書き換えます。

④ 本体 (scripts/, gui/, lib/)

ツールの心臓部です。メイン処理(scripts)、画面(gui)、共通機能(lib)に役割を分けることで、AIが迷わずに修正箇所を特定できるようになります。

3. AI時代の「データの扱い方」

ツールを作る上で、「どのファイル形式を使うか」は非常に重要です。
AIとの連携のしやすさ、エラーの少なさ、人間にとっての読みやすさ。それぞれの特徴を理解して使い分けましょう。

JSON (.json)

AI連携の王様

特徴: データの構造(キーと値)が明確で、プログラムで最も扱いやすい形式。

使い所:

  • AIからの回答を受け取る時(エラーが起きにくい)
  • 設定ファイル(config.json)
  • 複雑なデータの一時保存

例:{"name": "田中", "age": 30}

CSV (.csv)

表計算の基本

特徴: エクセルで開ける、カンマ区切りのテキストデータ。

使い所:

  • 顧客リストや商品リストなど、大量のデータの入出力
  • 今回の「Googleマップ自動化ツール」の入出力

例:名前,年齢\n田中,30

YAML (.yaml)

人間が読みやすい

特徴: JSONより記述がシンプルで、コメントも書ける。

使い所:

  • ユーザーが手動で書き換える設定ファイル
  • プロンプトの管理

今回のツールで使う形式

今回の「Googleマップ自動化ツール」では、以下の形式を採用します。

  • 入力/出力: CSV (Excelとの親和性が高いため)
  • 設定: Pythonファイル (.py) (system/config.py として管理)
  • AI指示書: TXT (prompts/フォルダ内)

適材適所でデータを使い分けることが、バグの少ないツールを作るコツです。