私のプロジェクトでは、試験において数百件に及ぶAPIを手動で実行・検証しており、1回あたりの試験に膨大な工数がかかっていました。 このような課題を解決するため、Gemini を活用したスクリプト作成に挑戦しました。
Pythonの深い知識がなくても現場で動くツールを作成した「AIへの頼み方のコツ」や活用事例をご紹介します。
目次
1. こんな方に読んでほしい
- 業務を自動化したいけれど、学習コストや工数の壁に悩んでいる方
- 生成AIにコードを書いてもらったけれど、うまく動かず「やっぱり無理か」と思った経験がある方
2. プロンプト術
AIに「〜のスクリプトを作って」と一言お願いするだけでは、なかなか現場で即戦力になるものは出てきません。私が試行錯誤の中で見つけた、AIへの「頼み方のコツ」を4つに整理してみました。
① インプットとアウトプットを具体的に
AIにとって一番大事なのは「何を渡されて、何を出せばいいか」というルールです。
- インプット: 読み込むファイル名、拡張子、データの構造(CSVのどのセルに何が入っているかなど)
- アウトプット: 画面に表示するだけでいいのか、新しいファイルを作るのか、保存先はどこか
② 使用してほしいパッケージを指定する
Pythonには便利なライブラリがたくさんあります。「通信にはhttpx 1.x.xを使ってね」と指定してあげるだけで、AIは迷うことなく、洗練されたコードを生成してくれます。
③ 複雑な処理は、「段階的」に依頼する
欲張って一度に全部盛り込もうとすると、AIも混乱してバグが出やすくなります。
- まずは「APIを実行するだけのシンプルなコード」を作ってもらう
- 動くのを確認してから「実行結果を保存する機能」を付け足してもらう
このスモールステップの方が、精度がよく一番の近道でした。
NGの(複数の機能を一括で指示)フロー

OK(スモールステップ)のフロー

④ AIが読み取りやすい「Markdown形式」で指示する
指示が長くなりそうな時は、箇条書きや見出し(Markdown記法)を使って、情報を整理して伝えると、AIが情報の優先順位をパッと理解できるようになります。
3. 実践:プロンプト例
実際に私が現場で使ったプロンプトの例になります。ここでは「APIを実行して証跡(エビデンス)を保存するツール」を2段階で作成しました。
- 使用した生成AI:Gemini
- 使用したモード:Pro
- スクリプト実行環境:Python 3.13.5
① まずは基本機能から
まずは土台となるAPI実行部分の作成を依頼します。
プロンプトの例(1回目)
PythonでAPIを実行するスクリプトを作成してください。
## スクリプトの内容
### インプット
配置場所: スクリプトファイルと同じディレクトリ
ファイル名: 拡張子が .csv の任意のファイル
構造: 1行1列目をエンドポイントURL、3行目以降をクエリパラメータとして使用
### 処理フロー
CSVファイルを読み込んでエンドポイントを抽出する
クエリパラメータを設定してAPIを実行する
レスポンスステータスをターミナルに表示する
### 使用パッケージ
httpx 1.x.x
実際にGeminiで生成されるコード
mport httpx
import csv
import pathlib
import sys
def execute_api_from_csv():
# 1. スクリプトと同じディレクトリ内のCSVファイルを取得
current_dir = pathlib.Path(__file__).parent
csv_files = list(current_dir.glob("*.csv"))
if not csv_files:
print("エラー: CSVファイルが見つかりません。")
return
# 最初のCSVファイルを使用
target_file = csv_files[0]
print(f"使用するファイル: {target_file.name}")
try:
with open(target_file, mode='r', encoding='utf-8-sig') as f:
reader = list(csv.reader(f))
if not reader:
print("エラー: CSVファイルが空です。")
return
# 2. エンドポイントURLの抽出 (セルA1)
endpoint_url = reader[0][0]
if not endpoint_url.startswith(("http://", "https://")):
print(f"エラー: 無効なURLです -> {endpoint_url}")
return
# 3. クエリパラメータの抽出 (3行目以降)
# A列をキー、B列を値として辞書を作成
params = {}
if len(reader) >= 3:
for row in reader[2:]:
if len(row) >= 2 and row[0]: # キーが存在する場合のみ追加
params[row[0]] = row
# 4. APIの実行
print(f"実行中: {endpoint_url}")
if params:
print(f"パラメータ: {params}")
with httpx.Client() as client:
response = client.get(endpoint_url, params=params)
# 5. レスポンスステータスを表示
print("-" * 30)
print(f"ステータスコード: {response.status_code}")
print(f"レスポンス内容: {response.text[:200]}...") # 冒頭のみ表示
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
if __name__ == "__main__":
execute_api_from_csv()② 機能を追加してブラッシュアップ
無事に動いたら、次に「ファイル保存機能」を依頼します。
プロンプトの例(2回目)
先ほど作成したスクリプトに、以下を追加してください。
## 追加処理の内容
### アウトプット
レスポンスステータスや実行したクエリパラメータをまとめたファイル
レスポンスボディをまとめたファイル
### 詳細内容
API実行後、インプットのCSVにある「試験項番」ごとにディレクトリを作成する
作成したディレクトリにアウトプットファイルを作成する
ターミナルに出力していたレスポンスステータスは非表示にする
この2回目の依頼の結果、Geminiはフォルダ作成とファイル保存のロジックを正確に追加したコードを出力してくれました。一度に全機能を盛り込もうとした時のような混乱やエラーもなく、スムーズに期待通りのツールを完成させることができました。
こうして段階を分けることで、処理が「どう動いているか」をしっかり指示しながら進めることができました。このプロセスを経て誕生した、自作ツールたちをご紹介します。
4. 実際に使用しているツールの紹介
この手法を使い、私のプロジェクトではこんなツールが活躍しています。
| 作成したスクリプト名 | 内容とメリット | 導入効果 |
| APIテスト自動実行スクリプト | テスト仕様書のパラメータをCSVファイルから読み取って、APIを連続実行。期待値と合っているかまで自動でチェックします。 | 項目数が膨大なデグレ試験で高い効果を発揮しています。。手動では数日かかるテストと証跡保存をわずか数分~1時間程度で完遂することができました。 |
| エビデンス漏れチェックツール | 試験後に、必要な証跡ファイルがすべて揃っているかを確認。人間の目でのチェック漏れを防ぎます。 | 証跡の不備によるレビュー指摘が減少することで、レビュー指摘対応の工数も減りました。 |
5. 実際にやってみて分かったこと
良かった点
コードの内容をAIに詳しく解説してもらえたり、エラーが出てもその内容をAIに指示して原因を教えてもらえたりします。AIとのやり取りを通じてソースコードへの理解が深まり、自身の勉強にもなりました。
今後の課題
実際に生成AIでスクリプトをする上での課題もあります。
- 品質を見極める力: 「動くもの」は作れますが、それが「一番良い書き方か」を判断するには、最低限の知識が必要だと感じました。
- プロンプトを考える時間: 複雑なツールになるほど、プロンプトを考えるための時間がかかります。AIに付きっきりになってしまう場面もありました。(それでも人間の手でソースを書くより生産性は高いです。)今後はプロンプトエンジニアリングのスキルを磨いて、もっとAIが読み取りやすい指示を出せるようになりたいです。
おわりに
大切なのはコードを書く技術以上に、「何を解決したいか」を明確にしてAIに正しく伝える力が必要だなと感じました。
AIを使用して自分だけのスクリプトで身近な作業を自動化してみてください!