はじめに
最近では、ChatGPTやGeminiなど、チャット型の生成AIをソフトウェア開発に活用する機会が増えてきた。
生成AIの活用は効率的だが、うまく活用するにはちょっとした工夫が必要である。
以下に、自分が実践してみて便利だと感じたテクニックを紹介する。
1. AIとの会話を円滑にする「事前情報の共有」
生成AIは「現在の状況を正確に伝える」ことで本来の力を発揮する。特に、プロジェクトのディレクトリ構造や主要なコード内容を事前に共有することで、AIが正確に問題を理解できるようになる。
具体的な方法
以下のプロンプト例をテンプレートとして活用すると良い。
あなたは熟練のシステムエンジニアです。本プロジェクトのサポートをお願いしたく、以下のプログラム内容をご確認いただきたいと思います。
ディレクトリ構造:
project/
main.py
utils/
helper.py
validator.py
ファイルの内容:
ファイル: project/main.py
効率化のための工夫:
– スクリプトの活用: Pythonでディレクトリ構造やファイルの中身を自動収集するスクリプトを準備する。以下はその例。
import os
def generate_project_structure(directory):
for root, _, files in os.walk(directory):
print(f"ディレクトリ: {root}")
for file in files:
print(f" ファイル: {file}")
generate_project_structure("project/")
このようなスクリプトを定期的に実行してプロジェクト情報を更新すれば、AIとのやりとりがより効率的になる。
2. コンテキストを忘れさせない「リフレッシュ」
生成AIには入力トークンの制約があるため、コンテキストを忘れる問題が発生する。そのため、適宜コードやプロジェクト全体の情報を再送信するリフレッシュが欠かせない。
リフレッシュ用プロンプト
以下のプロンプトを活用して情報を再送信する。
念のため、現在のプロジェクト構造とコードを以下に再掲します。今後の議論や変更はこの情報を元に進める予定です。不足や改善点があればご指摘ください。
ディレクトリ構造:
project/
main.py
utils/
helper.py
validator.py
コード内容:
ファイル: project/main.py
ポイント
- リフレッシュのタイミング: 新しいタスクに取り掛かる際や、複数の変更を続けて依頼する際に実行する。
- 変更履歴の共有: 過去の変更やAIの提案した内容を含めると、AIの理解がより正確になる。
3. 変更依頼時の「具体的な指示」
AIにコード変更を依頼する際、対象となるコードや変更内容を具体的に記述することで、意図通りの変更を提案させることができる。
具体的なプロンプト例
以下の例では、既存コードの一部を変更し、新しい機能を追加するケースを想定している。
以下のコードに、指定した変更を加えてください。変更内容が既存の仕様や構造と矛盾しないよう配慮してください。
現在のコード:
def greet(name):
print(f"Hello, {name}!")
変更内容:
- `greet`関数に、現在時刻を出力する機能を追加してください。
- 現在時刻はフォーマット`YYYY-MM-DD HH:MM:SS`で表示してください。
注意点
- 変更範囲を明示: AIが不要な部分まで変更しないよう、対象コードを明確に指定する。
- 変更意図を説明: 背景や目的を簡潔に伝えることで、AIの提案がより実用的になる。
4. 出力コードの検証は必須
生成AIが提案するコードは非常に有用だが、適用前に検証を行う必要がある。特に、重要なコードが抜け落ちていたり、既存コードと矛盾している場合があるからだ。
WinMergeの活用
WinMergeは、ファイル比較と統合に特化した無料ツールで、生成AIの出力コードを検証するのに最適である。
手順
- 比較対象を準備:
– 変更前のコードをローカルディレクトリに保存。
– AIが生成した変更後のコードを別ファイルとして保存。
2. WinMergeを起動:
– 左側に変更前のコード、右側に変更後のコードをドラッグ&ドロップ。
3. 比較結果の確認:
– 強調表示された変更点を確認し、不整合がないかチェック。
4. 統合:
– 必要に応じてコードを統合し、保存。
ポイント
- メリット:
- 視覚的に変更箇所を確認できるため、確認作業の効率が向上。
- 補完作業:
- 不足や不整合が見つかった場合、WinMergeで直接編集が可能。
まとめ
生成AIを活用する際の基本は、「情報を正確かつ簡潔に伝える」ことである。
そしてAIに正確な情報を提供し、適切なタイミングでコンテキストをリフレッシュすることが不可欠だ。また、出力されたコードは必ずツールを使って検証し、信頼性を確保する必要がある。
これらのテクニックを取り入れることで、生成AIを「賢い開発パートナー」として最大限活用できるだろう。少しの工夫と丁寧な運用が、大きな成果を生む鍵となる。
コメント