WinActorで生成AI連携 ~シナリオひな型作成機能におけるプロンプト検証の実例と比較まとめ~【連載第二弾】
目次
WinActor ver7.5から追加された、WinActorの生成AIを使ったシナリオひな形生成機能について、3回にわたって連載コラムでお届けしております。
「生成AIへの入力プロンプトの書き方を工夫して理想に近いシナリオを生成したい」と考えている方は是非ご覧ください。
連載コラム
第1回. WinActor ver7.5の生成AI連携機能でシナリオ作成してみた
第2回. プロンプトを2パターン試してみた(今回)
第3回. プロンプトを再実行してみた結果とこれまでのまとめ
はじめに
第2回では、第1回で試した入力プロンプト(以下、基本プロンプトと記載)を簡易化したり構造化したりすることでシナリオの精度に影響があるかどうか確認し、シナリオ生成における生成AI利用の考慮すべき点を考察していきます。
尚、本記事では基本プロンプトの記述内容を簡易化したものを、簡易プロンプト、構造化したものを、構造プロンプトと表記します。
※モデルは基本プロンプトと同じGPT-4o miniを使用しています。
簡易プロンプト試行観点(費用とシナリオの質)
シナリオ生成には生成AIの利用料が発生します。出来る事なら利用料を抑えつつ、イメージに近いシナリオを生成したいものです。プロンプトの文字数を減らすことで使用トークン数が減り、費用削減につながる可能性があります。プロンプトの情報が不足すると、生成されるシナリオの質にも影響が出ることが考えられます。簡易プロンプトによるシナリオを基本プロンプト版と比較しながら、費用と結果のバランスを考慮して利用する際の留意点を確認していきます。
構造プロンプト試行観点(シナリオの質とプロンプト記述の注意点/工夫)
本機能で生成するシナリオを求める精度に近づけるため、入力プロンプトの工夫に悩む人も多いのではないでしょうか。、プロンプトを構造化すると指示が明確になり、生成AIの理解を助け、より一貫性のある出力を得やすくなります。WinActorのシナリオ生成においても同様かどうか、今回は構造プロンプトによるシナリオを基に確認していきます。
確認に際しては、基本プロンプトによるシナリオに見られた改善箇所、具体的には部品やプロパティ設定の一貫性の無さや不適切な箇所(同類操作の部品間でプロパティの設定にバラツキが生じた点や、意図した部品が生成されなかった点など)に着目します。プロンプトの書き方の注意点や工夫についても考察したいと思います。
各パターンのプロンプト実行の結果
以降は、簡易プロンプトと構造プロンプトそれぞれの実行結果を基本プロンプトと比較し、結果について気になった点をピックアップして説明します。
簡易プロンプト
プロンプト
シナリオと同じフォルダにあるExcelファイル「経費申請データ.xlsx」を開く。
Edgeブラウザを起動し、経費精算システムの画面を開く。
ExcelファイルのA列からH列の値を取得して経費精算システムに入力する。
取得した往復の値が〇の場合、経費精算システムの「往復」欄にチェックを入れる。
「交通機関」欄は、取得した値と同じラジオボタンを選択する。
追加ボタンをクリックして明細を追加し、全ての追加が完了したら、申請ボタンをクリックする。
生成されたシナリオ画像
【処理概要①】Excelを開いて、経費精算システムのページを表示する
【処理概要②】経費精算システムへ入力するデータをExcelから取得する(繰り返し処理:前半)
【処理概要③】Excelから取得した値を基に経費精算システムの各入力欄を操作し、明細を追加する。全ての明細の追加が完了するまで繰り返す。(繰り返し処理:後半)
※基本プロンプト版では生成された、Excelから取得した値をシステムの各項目へ入力する処理は生成されなかった。
【処理概要④】申請ボタンをクリックし、Excelとブラウザを閉じシナリオを終了する。
生成されたシナリオの結果のまとめ
プロンプトの記述内容を簡易化したにもかかわらず、料金の大幅削減にはつながりませんでした。一方、処理に関しては主要な機能の一部が欠落しました。
処理の変化 | ◆主要な機能の一部が欠落した
✓ 経費精算システムの各項目に入力する処理(値の設定)が追加されていない。 |
料金の変化 | ◆プロンプトの記述内容を簡易化した結果について、文字数の減少幅に対して、トークン数及び料金の大幅な削減には至らなかった。
✓ 基本プロンプトと簡易プロンプトの文字数と料金の増減を比較したところ文字数は36%減、料金は18%減にとどまった。 |
料金比較表
基本プロンプト | 簡易プロンプト | 結果 | |
---|---|---|---|
文字数 | 340文字 | 217文字 | 36%減 123文字 |
料金 (見積ベース) |
合計:0.11円 |
合計:0.09円 入力:0.768(トークン数)*0.0226円(/1000トークン) ≒ 0.02円 出力:0.759(トークン数)*0.0906円(/1000トークン) ≒ 0.07円 |
18%減 0.02円 |
トークン | 合計:1,819トークン | 合計:1,527トークン 内訳 Processed Prompt Tokens(入力トークン数):768 Generated Completion Tokens(出力トークン数):759 |
19%減 △292円 |
※1000トークン当たりの単価は、2025年4月時点の料金計算ツールに基づいています。
料金計算ツール | Microsoft Azure
構造プロンプト
プロンプト
以下の#フローと#条件を基に、シナリオを生成する
#フロー
Excelファイルを開く。
ブラウザを起動し、経費精算システムの画面を開く。
Excelファイルの各列の値を取得し、経費精算システムの各欄に入力もしくは選択する。
追加ボタンをクリックして明細を追加する。
全ての明細の追加が完了したら、申請ボタンをクリックする。
Excelファイルを保存しないで閉じる。
#条件
使用するExcelファイル:シナリオと同じフォルダにある「経費申請データ.xlsx」
Excelファイルのレイアウト:1行目はタイトル、2行目以降はデータが記載されている
A列【使用日】、B列【金額】、C列【往復】、D列【交通機関】、E列【区間From】、F列【区間To】、G列【訪問先】、H列【摘要】
Excelファイルのデータ数だけ明細の追加を繰り返す
ブラウザはEdgeを使用する
経費精算システムの選択において「往復」欄は、C列【往復】が〇の場合チェックボックスにチェックを入れる
経費精算システムの選択において「交通機関」欄は、D列【交通機関】の値と同じラジオボタンを選択する
生成されたシナリオ画像
【処理概要①】Excelを開いて、経費精算システムのページを表示する。
【処理概要②】経費精算システムへ入力するデータをExcelから取得する。(繰り返し処理:前半)
【処理概要③】取得した値を経費精算システムの各項目へ入力し、明細を追加する
全ての明細の追加が完了するまで繰り返す。(繰り返し処理:後半)
【処理概要④】申請ボタンをクリックし、Excelとブラウザを閉じシナリオを終了する。
生成されたシナリオの結果まとめ
プロンプトの記述内容を構造化しても改善されなかった箇所が見られました。
また、プロンプト記述における注意点や工夫の観点も得られました。
構造化しても改善しなかった箇所 | ◆構造化に伴いプロンプトの記述内容で「#フロー」と区別して「#条件」を明示したが、 基本プロンプトのシナリオと同様の改善箇所が見られた。
✓ 「18_Excel関連」の同類操作の部品の間で、同じプロパティ設定項目の設定状態にバラツキがある点は改善せず ✓ プロンプトの「#条件」に「ブラウザはEdgeを使用する」旨を記述したが、プロパティ設定項目「ブラウザ名」や「ブラウザ種類」は設定されず。 |
プロンプトの書き方の注意点や工夫 | ◆広義に解釈される言葉はできるだけ避け、実際の動作そのものを表す用語を使って、プロンプトを記述する。
✓ 様々に解釈し得る曖昧な言葉で記述された箇所は、適切でない部品で生成された。
[結果について] ◆必要最低限の部品を生成させる可能性を高めるには、対象業務のインプットとアウトプットに関する情報(操作対象や形式の詳細)をプロンプトの記述内容に含める。 ✓ アウトプット対象(システム画面の入力項目)の情報が欠落した箇所は、シナリオ内で該当処理が不足した。 ✓ インプットの形式(Excelファイルの表形式のフォーマット)に関する情報が充実した箇所は、データ構造を考慮した処理/設定が追加された。 例① 読み込み行のカウントアップと解釈できる処理が見られる。 例② 読み込み対象のセル位置指定と解釈できる設定が見られる。 |
トークン数 | 合計:1,950トークン
内訳 |
料金(見積ベース) | 合計:0.11円
内訳 |
簡易プロンプトと構造プロンプトの比較まとめ
簡易プロンプトの結果を踏まえて
文字数の減少率に対して料金の減少率は50%にとどまりました。これにより、入力プロンプトの文字数を減らしてもトークン数および利用料を大幅に節約できるとは言えないことが分かりました。コストを抑えるために安易にプロンプトを簡易化する必要はなく、むしろ簡易化した操作は処理が欠落する可能性があることを念頭におく必要があります。
※シナリオひな形で全体的な処理の流れが生成されれば良い場合、細かな確認や修正を減らすために、詳細な操作ステップを省いた簡素な記述内容が適しているケースもあると考えられます。
構造プロンプトの結果を踏まえて
一般的に、プロンプトの記述内容を構造化することは生成AIから的確な回答を得やすくすることから、WinActorのシナリオ生成においても基本プロンプト(文章ベース)のシナリオから改善すると予想していましたが、今回は処理や設定に大きな改善が見られませんでした。
生成AIによる。コストや方法論など様々な考慮事項が想定されますが、それらに囚われすぎて意図が伝わらない内容になってしまっては本末転倒です。WinActorで実現したい動作や操作対象について、生成AIに誤解を生じさせない表現や用語で説明できていること、そして「RPAで何を(どこを)どのように操作するか」を必要最低限の手がかりで示すことが最も重要な観点になると考えます。
おわりに
生成AIによるシナリオ生成のためのプロンプトについて、記述のポイントを述べてきましたが、実際のところ求められるシナリオのクオリティは個々によって様々に異なります。そのため、入力(プロンプト記述内容)と出力(シナリオ)の分析、仮説検証を繰り返していくことが必要です。その際、例えば「プロンプトで記述した操作の8~9割程度は対応操作の部品が生成され、うち5割程度はプロパティが設定されているのが理想」といったように、本機能で生成されるシナリオについて自分なりの品質基準を明確にできていれば、基準に到達できるようなプロンプトの工夫と改善ができるようになり、記述のコツを掴めるようになってくるでしょう。
さて、そんな試行錯誤を繰り返すにあたり気になるのが、同じプロンプトを再実行した場合に結果がどのくらい変化するか、という点です。次回は再実行した結果を紹介し、連載コラムの最終回としてWinActorの生成AI連携機能によるシナリオひな形作成の利用についてまとめたいと思います。
本記事のカテゴリ :RPA技術コラム
PickUP
本記事に関連するCACのサービスやお役立ち情報をご紹介します。
RPA技術レポート無料ダウンロード
- 【コラム】自分にもできる!Power Automateで簡単なフロー作成をしてみよう! ~OutlookメールとShare Pointフォルダー連携~
- 【コラム】WinActorで生成AI連携 ~シナリオひな型作成機能におけるプロンプト検証の実例と比較まとめ~【連載第一弾】
- 【コラム】WinActor ver7.5.0 「Python実行」を使ってみました ーブラウザ操作編ー
- 【コラム】WinActor ver7.5.0 「Python実行」を使ってみました
- 【サービス】RPA開発/サポートサービス
- 【サービス】RPA+Oneソリューション
- 【サービス】RPA研修 自社開発イネーブルメントプログラム
- 【動画】CAC RPAセミナー オンデマンド
- 【資料ダウンロード】美しいコードをみると感動する、美しいワークフローの作り方|CAC RPA White Paper