■ 導入:既にある「手動フロー」を、まるごと自動化してほしいという相談
この案件は、最初からゼロの状態ではなく、依頼者の方がすでに
ブラウザから HARファイルを作成(手動)
その HAR を Pythonスクリプトで解析・抽出(手動実行)
という流れを運用されているところからスタートしました。
新たな要望としては、
抽出したデータ(複数の文章)に対して
ChatGPTで1件ずつ返事を書きたい。それも含めて一連の流れを自動化したい
というものでした。
つまり、「HAR作成 → Python抽出 → ChatGPTで整形 → CSVに蓄積」という
すでに存在しているフロー全体を、できるだけ人の手を介さず回したいという相談です。
■ 課題:工程が分かれているうえに、どこか一つ失敗すると全体が止まってしまう
もともとの運用は、
HARファイルを作る
Pythonスクリプトを実行して抽出する
抽出したテキストをChatGPTに貼って、返事を書いてもらう
それをまた別の形にまとめる
という形で、**工程ごとの区切りはあるものの、連携は完全に“手作業”**でした。
この状態だと、
実行のたびにファイルを指定してPythonを叩く必要がある
ChatGPTへのコピペと結果の保存が繰り返し作業になる
どこか一つで失敗すると、どこまで完了しているか追いかけるのが大変
といった、**「フローの長さ」「人手の介入」「失敗時の復旧のしづらさ」**が課題になっていました。
■ 改善①:処理をStep1〜6に分解し、Masterスクリプトで一括制御する設計へ
ここで私が最初に考えたのは、
すべてを一気に自動化する前に、工程を“ステップ”として分けて設計する
ということでした。
具体的には、
HAR関連処理
Pythonによる抽出
ChatGPTへの投入
回答の取得・整形
CSVへの書き出し
といった流れを、Step1〜Step6 のように段階ごとの処理として切り出し、
それぞれを個別のスクリプトとして構成しました。
そのうえで、最後に
各Stepを順番に呼び出す「Master.ahk」
を作り、
Includeしていく形で 一括実行できる“親スクリプト” にまとめています。
■ 改善②:各ステップごとに「成功/失敗」を判定し、復帰ルートも用意する
ステップを分けた目的は、単に整理のためだけではありません。
Stepごとに「実行成功したかどうか」を判定できるようにしておく
もし失敗しても、どのStepまで進んでいたかが分かる
必要に応じて、そのStepから再開できる“復帰ルート”を用意する
という「チェックポイント」の役割も持たせています。
これにより、
途中で失敗しても、最初からやり直しにならない
原因の切り分けがしやすい
長いフローでも安心して自動実行できる
という、“止まらないパイプライン”に近づけることができます。
■ 改善③:APIを使わずに、ChatGPTの回答を自動でCSVへ蓄積していく仕掛け
この案件の特徴の一つが、
ChatGPTのAPIは使わず、回答を自動でCSVに蓄積していく
という点でした。
依頼者が元々使っていたのは、「HAR → Python → テキスト」までの部分で、
そこから先は ChatGPTの画面を使って、複数の文章それぞれに返事を書いていきたい というニーズです。
そこで、
Pythonで抽出した文章を順に取り出す
ChatGPTに投入して、1件ずつ回答を取得する
その回答を CSV行として蓄積していく
途中で回答取得に失敗しても、全体が止まらず進める よう制御する
という流れを、Step群+Masterでまとめました。
ここでも、
「すべてを一気にやる」のではなく、
抽出
投入
回答取得
CSV蓄積
という単位でステップ化し、
どこまで進んでいるか、どこでエラーが出たかが分かる設計を重視しています。
■ 成果:長いフローでも“一括で回して、途中で止まりにくい”仕組みに
この設計により、
もともと 手動でつないでいたフロー が、
「Step1〜6」と「Master.ahk」によって一連の自動処理になった
各Stepごとに成功/失敗が分かるため、
トラブル時もどこから再開すればいいか判断しやすい
ChatGPTの回答も、APIなしでCSVに自動蓄積できる仕組みになった
回答失敗時にも、そこで止まらず“進める範囲を進める”ような設計にできた
という形で、
依頼者の「フロー全体を自動化したい」という目的を、現実的な形で実現することができました。
■ まとめ:長い処理は“ステップ化+マスター制御”で、現実的な自動化にする
この案件で改めて感じたのは、
フローが長く複雑なほど、「全部一気に」ではなく 「ステップ化+マスター制御」が効いてくる
ということです。
1つ1つの工程はシンプルでも、
手でつなぐと負担もミスも増える
それを「分けて作って、最後に束ねる」ことで、
止まりにくく、復旧しやすい自動化にできる
今後も、こうした “段階的に動かす設計” と
“失敗してもやり直ししやすい構造” を大事にしながら、
実例を紹介していきたいと思います。
▶「自分のフローも、Stepごとに整理しながら自動化してほしい」「失敗時の復帰まで含めた仕組みを作ってほしい」という方はこちら