Back to Astron Rpa

Optimize Input Prompt

backend/ai-service/app/prompts/smart/optimize_input_prompt.md

1.1.67.3 KB
Original Source

根据用户提供的「操作描述」或「界面目标」,生成可直接执行的「优化指令」,确保操作逻辑不偏差。

名词解释

  1. 操作描述:用户对需求的文字说明(可能未提供,则需要根据界面目标推测用户意图);
  2. 界面目标:浏览器操作所需的元素 / 区域集合(含 uuid、截图、outerHTML,可能未提供或部分提供);
  3. 优化指令:最终输出的、可直接执行的操作指令(全新生成或基于原描述优化)。

关键判断规则(优先执行)

若用户提供「gui_targets」→ 直接判定为「浏览器 GUI 操作」; 未提供「gui_targets」→ 判定为「数据处理操作」。

「优化指令」 输出内容要求

  1. 数据处理操作:
  • 基于用户原描述扩写,补充「格式要求 + 示例」,确保指令明确;
  • 不新增额外操作步骤,不偏离用户原始需求。
  1. 浏览器 GUI 操作:
  • 占位符使用要求
    • 请使用占位符 `{traget_name:target_uuid}`,仅用于引用用户提供的已有界面目标,注意"{}"要用反引号"`"包裹,例如 `{查询按钮:e1g3h2j1}`。
    • 请使用占位符 `{new_target_name}`,仅用于提示用户补充缺失的界面目标,注意"{}"要用反引号"`"包裹,例如 `{城市下拉面板}`。
    • 请使用占位符 `(option1|option2)`,提供可选操作行为(用户二选一 / 多选),注意"()"要用反引号"`"包裹,例如 `(日期|日期范围)`。
    • 请使用占位符 `[user_input]`,提示用户补充文本信息(如内容、参数),注意"[]"要用反引号"`"包裹,例如 `[补充说明]`。
    • 仅在使用占位符时使用反引号,其余情况请用其他引号(例如单引号)。
  • 「界面目标」 处理要求
    • 保留 「界面目标」 中所有 GUI 目标,其中,你可以优化 target_name 命名(贴合操作场景,如 “表单_form”→“用户注册表单”);
    • 若已有目标不足以完成操作(如下拉框无未提供下拉面板),用{new_target_name}提示补充;
    • 若提供的界面目标包含需要的目标,无需让用户补充;
  1. 输出限制
    • 仅保留 new_prompt 代码块,内部只写操作指令,不需要解释;
    • 示例仅作参考:所有示例不参与生成逻辑,仅用于理解规则;
    • 操作逻辑一致:生成的 new_prompt 必须完全匹配用户原始需求,不新增 / 删减操作目的。

「优化指令」 输出格式

new_prompt
「优化指令」

浏览器 GUI 操作示例

输入示例 1

日期选择

输出示例 1

new_prompt
完成在点击`{train_date}`展开的`{日期选择器面板}`中,选择`[目标日期]`。

操作步骤:
1.点击出发日期的`{train_date}`,并等待`{日期选择器面板}`展开。
2. 在展开的`{日期选择器面板}`中,选中`[目标日期]`。

注意:
1. 如果`{日期选择器面板}`未展开,请检查`{train_date}`是否可点击。
2. 如果`[目标日期]`不在当前显示的月份中,请通过点击“上一年”、“下一年”、“上一月”或“下一月”按钮进行切换。
3. 左右日期面板的 HTML 内容高度相似,确保区分准确。
4. 根据目标日期的年月找到目标面板,找到并点击目标日期 - day。

输入示例 2

查询火车票

`块元素_search-main-item`的 uuid 是:af2j1k3l
`块元素_search-main-item`的 outerHTML 源码是: 
<div class=\"search-main-item\"><div class=\"search-main-tab\"><div class=\"search-tab-hd\"><ul><li class=\"active\"><a href=\"javascript:void(0)\"><i class=\"icon icon-dancheng\"></i>单程</a></li><li><a href=\"javascript:void(0)\"><i class=\"icon icon-wangfan\"></i>往返</a></li><li><a href=\"javascript:void(0)\"><i class=\"icon icon-huancheng\"></i>中转换乘</a></li><li><a href=\"javascript:void(0)\"><i class=\"icon icon-chepiao\"></i>退改签</a></li></ul></div><div class=\"search-tab-bd\"><!-- 单程 --><div class=\"search-tab-item\"><div class=\"search-form\"><div class=\"form-item-group\"><div class=\"form-item\"><label for=\"fromStationText\" class=\"form-label\">出发地</label><div class=\"form-bd\"><div class=\"input-box input-city\"><input type=\"text\" class=\"input \" value=\"\" id=\"fromStationText\" aria-label=\"请输入或选择出发地,按键盘上下键进行选择,按回车键选中\" autocomplete=\"off\"><i class=\"icon icon-place\" data-click=\"fromStationText\"></i></div></div></div><div class=\"form-item\"><label for=\"toStationText\" class=\"form-label\">到达地</label><div class=\"form-bd\"><div class=\"input-box input-city\"><input type=\"text\" class=\"input\" value=\"\" id=\"toStationText\" aria-label=\"请输入或选择到达地,按键盘上下键进行选择,按回车键选中\" autocomplete=\"off\"><i class=\"icon icon-place\" data-click=\"toStationText\"></i></div></div></div><div class=\"city-change\"><i class=\"icon icon-qiehuan\" title=\"切换\" id=\"danChange\"></i></div></div><div class=\"form-item\"><label for=\"train_date\" class=\"form-label\">出发日期</label><div class=\"form-bd\"><div class=\"input-box input-data\"><input type=\"text\" class=\"input\" id=\"train_date\" aria-label=\"请输入日期,例如2021杠01杠01\" autocomplete=\"off\"><i class=\"icon icon-date\" data-click=\"train_date\"></i></div></div></div><div class=\"form-item form-item-check\"><div class=\"form-bd\"><ul class=\"check-list check-list-right\"><li id=\"isStudentDan\">学生<i></i></li><li id=\"isHighDan\">高铁/动车<i></i></li></ul></div></div><div class=\"form-item form-item-btn\"><a href=\"javascript:void(0)\" class=\"btn btn-primary form-block\" id=\"search_one\">查&nbsp;&nbsp;&nbsp;&nbsp;询</a></div></div><!-- <style>.history-list-wrap {white-space: nowrap;margin: 0 auto;overflow: hidden;white-space: nowrap;}.history-list {display: inline;}.history-list li {display: inline;}</style> --><div id=\"search-history\"><div class=\"search-history-bd\"><i id=\"iconLeftHos\" class=\"history-prev icon icon-caret-left\"></i><i id=\"iconRightHos\" class=\"history-next icon icon-caret-right\"></i><div class=\"history-list-wrap\"><ul class=\"history-list\" id=\"history_ul\"><li data-from=\"VAP\" data-to=\"VAP\" data-from-encode=\"%E5%8C%97%E4%BA%AC%E5%8C%97\" data-to-encode=\"%E5%8C%97%E4%BA%AC%E5%8C%97\">北京北-北京北</li><li data-from=\"SHH\" data-to=\"VAP\" data-from-encode=\"%E4%B8%8A%E6%B5%B7\" data-to-encode=\"%E5%8C%97%E4%BA%AC%E5%8C%97\">上海-北京北</li></ul></div></div><div class=\"search-history-btn\"><a href=\"javascript:void(0)\">删除历史</a></div></div></div><!-- 往返 --><!-- 接续换乘 --><!-- 退改签 --></div></div></div>

输出示例 2

new_prompt
填写`{火车票表单:af2j1k3l}`,并查询

1. 输入`[出发地]`
2. 输入`[目的地]`
3. 点击出发日期的`{train_date}`,并等待`{日期选择器面板}`展开,选择`[出发日期]`
4. 点击`{查询按钮}`

数据处理操作示例

输入示例 1

日期转换

输出示例 1

new_prompt
将日期从一种格式转换为另一种格式。
示例输入:2025/01/01,目标格式:YYYY-MM-DD
示例输出:2025-01-01

输入示例 2

求交集

输出示例 2

new_prompt
计算两个集合的交集。
示例输入:{1, 2, 3}, {2, 3, 4}
示例输出:{2, 3}