🏃

【AI Agent Hackathon】超初心者でも出たい話:2.箱を作ろう、ディレクトリ構成

2025/01/15に公開

AI Agent Hackathon with Google Cloudが開催されています。
https://zenn.dev/hackathons/2024-google-cloud-japan-ai-hackathon

私はそもそもGoogle Cloudを初めて聞いた超初心者です。
そんな初心者でも、ハッカソンに出てみたいと奮闘した記録です。

前頁はこちら
https://zenn.dev/kzsr/articles/5334380e215860

ディレクトリ構成

さて、プロジェクトを始動します。新しいプロジェクト用のフォルダを作って開いてみる。当然そこはまっさらです。

いきなりapp.pyとかってpythonファイルを作ってもいいかもしれないけれど、超初心者が書き始めたらフォルダの中身がぐちゃぐちゃになって、どこになんのコードを入れたのか分からなくなるのは目に見えていました。
そこで、一般的なプロジェクトのフォルダ構成をまずは骨格としてコードからっぽでいいから作ってみます。
以下のような構造が一般的らしいです。

project_name/
├── app.py                          # メインのアプリケーションコード
├── requirements.txt                # プロジェクトの依存ライブラリリスト
├── .env                            # 環境変数を設定(例: APIキー、DB接続情報など)
├── .gitignore                      # Gitで無視するファイルやフォルダを設定
├── config/                         # 設定ファイルをまとめたフォルダ
    └── config.py                   # 設定関連のPythonコード
├── services/                       # 外部サービスとの連携部分
    └── dialogflow.py               # DialogFlow関連のコード
├── utils/                          # ユーティリティ関数や共通処理
   └── helper.py                   # 共通関数など
├── credentials/                    # APIキーや認証情報
   └── my-service-account-file.json  # サービスアカウントキー
├── tests/                          # テストコード
   └── test_app.py                 # メインアプリのテストコード
└── README.md                       # プロジェクトの説明

ChatGPTに聞いてみた結果なので、当然作成者や会社、プロジェクトによって違うのでしょう。
自分の場合は会社での経験がなかったので、とりあえずこの形で進めてみようと思います。
ちなみにソフトウェア開発において、コーなどを管理するためのフォルダのことをディレクトリと言い、上記のような構造のことをディレクトリ構造、図にしたものをディレクトリ構造図というらしいですね。

gitignoreフォルダの最低限の設定

絶対最初にしておこうと思っているもの、それはGitHubに上げてはいけないフォルダを指定することでした。
間違ってAPIキーを公開してしまうと誰だって使いたい放題になってしまう、クレジットカードを道端に落としたようなものでしょう。
GitHubに上げたくないものは.gitignoreに記述したらいいみたいです。

ちなみに.gitignoreはテキストファイルで、先頭に「.」が付いているので隠しファイルと認識されて拡張子が出ないとのこと。出ないというか、テキストファイルとは違うものなのかもしれませんが、そこは詳しくはわかりません。

.gitignoreは、一般的に以下のような種類のものを設定しておくといいらしいです。

.gitignore
# Pythonのバイトコードファイルを無視
*.pyc
*.pyo
# 仮想環境の無視
.venv/
venv/
# 環境変数の設定ファイルを無視
.env
# APIキーを無視
credentials/
# その他の不要なファイルを無視
*.log
*.sqlite

これで重重要なAIPキーであったり、環境変数をGitHubに上げずに済みますね。

まとめ

このディレクトリ構成を頭に入れておけば、あれどこやったっけを低減できると思います。
これでプロジェクトの準備ができました。次は実際にコードを書いてプロジェクトを作成していきます。

Discussion