A newer version of the Gradio SDK is available:
5.45.0
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の実装とテストを効率的に進めるための強固な基盤となります。