# Gemini CLIと歩む!AI API開発環境構築の道のり ## はじめに 本記事では、「親子で遊ぼうナビ」にAIを活用した口コミ自動要約機能のAI API開発環境を、**Gemini CLI**と共に構築した道のりを記録します。従来の環境構築で直面しがちな課題を、いかにGemini CLIが解決に導いてくれたか、そのプロセスを詳細に解説します。 ## 1. プロジェクトの初期化とGit管理の開始 開発の第一歩として、プロジェクトの基盤を固めました。Gemini CLIの指示のもと、必要なディレクトリ構造を構築し、Gitによるバージョン管理を開始しました。 * **ディレクトリ構造の作成:** `src/ai_api/core`, `tests/core`, `docs`, `.github/workflows`といった、プロジェクトの役割に応じたディレクトリを整備しました。 * **Gitリポジトリの初期化:** `git init`コマンドでGit管理を開始し、`.gitignore`ファイルを作成して、不要なファイルがバージョン管理されないように設定しました。この際、`.env`ファイルのような機密情報や環境固有の設定ファイルが誤ってコミットされないよう、`.env.example`というテンプレートファイルを用意するベストプラクティスもGemini CLIから学びました。 ## 2. Dockerベースの開発環境構築 「どこでも同じように動く」環境を実現するため、Dockerを基盤とした開発環境を構築しました。Gemini CLIは、`Dockerfile`と`docker-compose.yml`の作成を主導し、環境の統一性を確保しました。 * **`requirements.txt`の整備:** プロジェクトに必要なPythonライブラリ(Gradio, transformers, torch, pytest, ruff, mypy, pre-commitなど)をリストアップし、再現性を高めるためにバージョンを明記しました。 * **`Dockerfile`の作成:** Pythonベースの軽量イメージを使用し、依存関係のインストール、作業ディレクトリの設定、アプリケーションコードのコピー、ポートの公開、そしてアプリケーションの起動コマンドを定義しました。特に、`git`がコンテナ内にないために`pre-commit`が動作しないという問題が発生した際には、Gemini CLIが迅速に`Dockerfile`への`git`インストール行の追加を指示し、解決に導いてくれました。 * **`docker-compose.yml`の作成:** AI APIサービス(`api`)を定義し、`Dockerfile`からのビルド、ポートマッピング(`7860:7860`)、そして開発効率を高めるためのボリュームマウント(ローカルコードのリアルタイム同期)を設定しました。 * **環境の起動:** `docker-compose up --build -d`コマンドで環境を立ち上げました。この際、`.env`ファイルが見つからないというエラーが発生しましたが、Gemini CLIの的確な指示(`touch .env`)により、すぐに解決できました。 ## 3. 品質管理ツールの導入 コード品質を自動的に担保するため、リンター、型チェッカー、そしてGitフックを導入しました。 * **`pyproject.toml`の設定:** Ruff(リンター/フォーマッター)、Mypy(型チェッカー)、Pytest(テストフレームワーク)の厳格な設定を`pyproject.toml`に記述しました。Gemini CLIは、これらの設定がPython開発のベストプラクティスに則っていることを詳細に解説してくれました。 * **`pre-commit`フックの導入:** コミット時に自動でコードチェックが走るように`pre-commit`を設定しました。`pre-commit`ツールを`requirements.txt`に追加し、Dockerイメージに含めた後、コンテナ内で`pre-commit install`を実行することで、Gitフックを有効にしました。このプロセスでも、コンテナが起動しない、`git`が見つからないといった問題に直面しましたが、Gemini CLIのガイドにより、一つ一つ解決していきました。 ## 4. トラブルシューティングとGemini CLIの役割 環境構築の過程では、いくつかの予期せぬ問題に遭遇しました。しかし、Gemini CLIの存在が、これらの問題を迅速かつ効率的に解決する上で不可欠でした。 * **`.env`ファイルが見つからないエラー:** `docker-compose`が`.env`ファイルを要求するも、ファイルが存在しないというエラーに対し、Gemini CLIは`.env`ファイルの役割と`.env.example`との違いを明確に説明し、`touch .env`による解決策を提示しました。 * **コンテナが起動しない問題:** `main.py`が空であるためにコンテナが起動直後に終了してしまう問題に対し、Gemini CLIは一時的にシンプルなGradio「Hello World」アプリケーションを`main.py`に記述することを提案し、コンテナを安定稼働させることに成功しました。 * **`git`が見つからないエラー:** `pre-commit install`がコンテナ内で`git`を見つけられないというエラーに対し、Gemini CLIは`Dockerfile`に`git`のインストールを追加するよう指示し、問題を解決しました。 Gemini CLIは、単にコマンドを指示するだけでなく、エラーの原因を分析し、その解決策の根拠を詳細に説明してくれました。これにより、私たちは問題を解決するだけでなく、DockerやGit、Python開発のベストプラクティスに関する深い理解を得ることができました。 ## 結論 Gemini CLIとの共同作業により、AI API開発のための堅牢で再現性の高いDockerベースの開発環境を無事に構築することができました。この環境は、今後のAI APIの実装とテストを効率的に進めるための強固な基盤となります。