0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UiPath→Python実装で効果的だったAIプロンプトのまとめ

0
Posted at

今回の実装で効果的だったと考えられる AI プロンプトのまとめ

UiPath→Python 実装の過程で、意図どおりの実装や早期の原因特定につながった「聞き方・渡し方」をまとめた。同種の RPA/自動化実装や AI 支援開発で再利用できる。


1. 効果的だったプロンプトのパターン

1.1 「実物(DOM/HTML)を貼って、仕様を一文で言う」

パターン

  • 該当する画面の HTML または DOM の一部をそのまま貼り付ける
  • そのうえで「このボタンを押したい」「この入力欄に値を入れたい」など やりたいことを一文で書く

なぜ効いたか

  • セレクタや属性が実装とずれていても、実物を見せたことで「絵文字付きボタン」「ラベルが『顧客名 *』」などが伝わり、正しいセレクタ(filter(has_text="データを登録する")get_by_label("顧客名 *"))に修正できた。
  • 「こう動かしたい」だけだと、実装が「想定した HTML」で書いてしまい、本番 DOM と食い違うことが多い。

例(ユーザーがやったこと)

  • トップの「データを登録する」ボタンの HTML と、データ登録ページのフォーム周りの HTML を貼り付け、「確認」「✅ 登録」の HTML も共有した。
  • その結果、ボタンは get_by_role("button").filter(has_text="データを登録する")、ラベルは「顧客名 *」形式で統一する修正ができた。

1.2 「まずどこで落ちているか分かるようにしてほしい」

パターン

  • 「全部エラーになる」「1〜3行目は通るはずなのに通っていない」など 現象だけを伝える
  • そのうえで 「どこで・なぜ」失敗しているか分かるようにしてほしい と依頼する

なぜ効いたか

  • いきなり原因を当てるより、「失敗箇所を可視化する」ようにしてもらうと、次の一手(セレクトの絞り込み、選択肢の有無の確認など)が決めやすかった。
  • ターミナルに「フィールド「営業担当」(値: "田中") で失敗」と出るようにしたことで、strict mode 違反(2 要素マッチ)に気づき、stSelectboxVirtualDropdown で絞る修正にすぐつながった。

例(ユーザーがやったこと)

  • 「1~3行目は登録できるはずなので、できていない理由を探したい」→ フィールド単位で try/except して失敗箇所を表示するようにした。
  • 「結果はすべて登録エラーだった。どこでエラーになったかユーザーにわかりやすくしてほしい」→ ターミナル+Excel の「動作結果」に詳細を出すようにした。

1.3 「仕様・ルールを先に伝え、そのうえで例外を言う」

パターン

  • 普段のルール(例: 「ユーザーがブラウザを起動する」「設定は config で」)を最初に共有する。
  • 今回だけの例外(例: 「デバッグなので Python から起動にしてほしい」)を、「〇〇というルールだったが、△△にしてほしい」と対比して書く。

なぜ効いたか

  • 「デバッグなので Python 起動にしてください」と書いてあったため、config のポートを「接続用」ではなく「起動用」だけに使う変更が迷わずできた。
  • 「待ち時間はハードコードせず config に」と伝えたことで、キー名と既定値の設計まで一括で提案できた。

1.4 「欲しい挙動を 1・2・3 のステップで書く」

パターン

  • メッセージの文言、分岐、ファイルの扱いなどを 番号付きで順番に 書く。
  • 「最初の確認で〇〇の場合は〜、△△の場合は〜」「次の確認で OK なら実行、NO なら停止」のように、条件と結果を対応させる。

なぜ効いたか

  • 起動時フロー(インプット作成するか/既存か → この動作でいいか → はいなら取得→登録、いいえなら本日ファイル or ファイル選択)がそのまま実装の分岐と対応し、抜け漏れが減った。
  • 「本日日付のファイルがない場合は『本日日付のファイルがないのでファイルを選んでください』と出してファイル選択」のように、文言まで含めると、そのままメッセージとコードに落とし込めた。

1.5 「負荷・待ち・環境の心配を具体的に書く」

パターン

  • 「Web アプリに負荷をかけそう」「画面遷移で 1 秒くらい待ちたい」「登録ボタン押したあと 2 秒、次のページの読み込み時間を入れたい」など、数値や対象操作 を添えて書く。
  • 「ローカルでも同じようにできるか」など、環境の前提 も一緒に書く。

なぜ効いたか

  • 「確認クリック後 1 秒」「登録クリック後 2 秒」といった待ちを、そのまま定数→のちに config のキーに反映できた。
  • 「ローカルでも実装可能か」と書いてあったため、「config でミリ秒を変えればローカル・本番どちらでも有効」と答えつつ、実装で反映できた。

1.6 「成果物の形を指定する」

パターン

  • 「Zenn / Qiita に投稿するための記録をまとめてほしい」「記事はその記録をもとに自分でまとめる」のように、何に使うか・誰がどう使うか を短く書く。

なぜ効いたか

  • 「記録」であることが分かったので、見出し・表・チェックリストを含む「記事のたたき台」形式でまとめ、コピーや編集しやすい構成にできた。
  • 同じように「効果的だったプロンプトをまとめてほしい」と成果物の種類を指定してもらえたので、パターン+具体例+使うときのコツ、という構成でまとめられた。

2. 実際に効いたプロンプト例(要約)

ユーザーの発言・依頼(要約) 効果
トップ・データ登録ページ・確認後登録ボタンの HTML を貼り付け、「これで分析できるか?」 セレクタを実 DOM に合わせて修正(ボタン filter、ラベル「〇〇 *」、ドロップダウン内限定)
「1~3行目は通るはず。できていない理由を探したい」 フィールド・ボタンごとに例外をラップし、失敗箇所をターミナルに表示するようにした
「登録完了後の画面に『データを登録する』ボタンはあるか? ない場合はトップに戻る→クリックの 2 段にしたい」 あると確認してもらい、現状の 1 クリックのままでよいと判断できた
「会社ルールはユーザー起動だったが、デバッグなので Python 起動 にしてほしい」 config のポートを「接続」に使わず、起動用のみに変更
「インプット作成するか/既存か」のメッセージと「この動作でいいか」の確認、はいなら最初から最後まで、いいえなら本日ファイル or ファイル選択、と ステップで指定 メッセージ→分岐→取得フロー/登録フローの流れをそのまま実装
「待ち時間は config に書いたほうがよい? 他にハードコードを避けたい箇所は?」 待ち時間を config 化し、他候補(networkidle タイムアウト、ブラウザなど)を一覧で提示
「エラーがあった場所がユーザーに分かるようにしたい」 「動作結果」に「登録エラー: (フィールド・値・理由)」を書き込むように変更
「Zenn / Qiita 投稿用の記録をまとめてほしい。記事はその記録をもとに自分でまとめる」 見出し・表・実行方法・ポイント・ハマりどころ・チェックリストを含む記録ドキュメントを作成

3. 使うときのコツ(前提の伝え方・情報の渡し方)

  • 仕様書やルールがある場合は、最初に「〇〇という仕様/ルールで進めている」と一文で書く
    → 解釈のブレが減り、例外対応(デバッグ用に Python 起動、など)も伝わりやすい。

  • Web の不具合では、必ず「そのときの DOM や HTML」を貼る
    → セレクタ・属性・構造のずれを一発で合わせられる。

  • 「全部失敗する」ではなく「本来通るはずの範囲」を書く
    → 「1~3行目は通るはず」のように書いてもらうと、原因を「その範囲で落ちている操作」に絞りやすい。

  • 欲しい挙動は「条件 → 結果」を番号で書く
    → 分岐やメッセージの仕様がそのまま if/else や文言に落ちる。

  • 成果物の種類を指定する(記録・チェックリスト・README 用など)
    → 構成や粒度を合わせやすく、書き直しが減る。


4. このまとめの使い方

  • 自分用: 次に AI に依頼するときの「聞き方」のチェックリストとして使う。
  • チーム用: オンボーディングやレビューで「こう依頼すると答えが使いやすい」という例として共有する。
  • 記事用: Zenn/Qiita で「AI と進めたときのプロンプトのコツ」として、セクション 1 と 2 を要約して載せる。

必要に応じて、プロジェクト固有のルールやツール名を追記して使える。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?