Skip to content

Latest commit

 

History

History
130 lines (89 loc) · 10.5 KB

Action_space.md

File metadata and controls

130 lines (89 loc) · 10.5 KB

四种鼠标操作

鼠标操作包含:左键单击(CLICK)、左键双击(DOUBLE_CLICK)、右键单击(RIGHT_CLICK)、鼠标悬停(HOVER),例如 CLICK(box=[[387,248,727,317]], element_type='可点击文本', element_info='Click to add Title')。这四种动作所支持的参数如下表所示:

参数名 可选与否 解释
box 必选 以[[a,b,c,d]]表示屏幕上的一个矩形,其中 a/b/c/d 均为 000 到 999 之间的三位数字。
假设屏幕的宽度为 w,高度为 h。屏幕左上角坐标为(0, 0)。矩形的左上角坐标为 (a / 1000 * w, b / 1000 * h),矩形的右下角坐标为 (c / 1000 * w, d / 1000 * h)。
实际操作的位置为矩形的中点。
element_type 可选 对被操作元素的类型描述,例如“可点击文本”
element_info 可选 对被操作元素¬的内容描述,例如“Click to add Title”

文本输入(TYPE)

文本输入是指在给定位置输入文本,例如 TYPE(box=[[387,249,727,317]], text='CogAgent', element_type='文本输入框', element_info='CogAgent') 。它所支持的参数如下表所示:

参数名 可选与否 解释
box 必选 请参考“四种鼠标操作”中的解释。
element_type 可选 请参考“四种鼠标操作”中的解释。
element_info 可选 请参考“四种鼠标操作”中的解释。
text 必选 需要被输入的文本内容。该参数取值中可能包含形如__CogName_xxx__的变量。在实际执行“文本输入”动作时,变量应该被替换成实际的取值。详情请参考这里

四种滚动操作

滚动操作包含:向上滚动(SCROLL_UP)、向下滚动(SCROLL_DOWN)、向左滚动(SCROLL_LEFT)、向右滚动(SCROLL_DOWN),例如 SCROLL_DOWN(box=[[000,086,999,932]], element_type='滚动', element_info='滚动', step_count=5)。这四种动作所支持的参数如下表所示:

参数名 可选与否 解释
box 必选 请参考“四种鼠标操作”中的解释。
element_type 可选 请参考“四种鼠标操作”中的解释。
element_info 可选 请参考“四种鼠标操作”中的解释。
step_count 必选 滚动的步骤数,滚动一步对应于鼠标滚轮滚动一格。注意:系统设置和应用类型均会影响滚动一步的实际效果,因此模型难以准确预测所需的滚动步骤数。

敲击键盘(KEY_PRESS)

敲击键盘是指按下并抬起依次给定的按钮,例如KEY_PRESS(key='F11')。这一操作类型仅有一个必选的参数key ,表示需要被敲击的按键名称,例如数字键(0~9)、字母(A-Z)。除此之外,KEY_PRESS同时支持以下常用按键,如下表所示。

Windows macos
换行/回车 Return Return
空格 Space Space
ctrl 键(左/右) Lcontrol / Rcontrol N/A
alt 键(左/右) Lmenu / Rmenu N/A
control 键(左/右) N/A Control / Right Control
command 键(左/右) N/A Command / Right Command
Shift 键(左/右) Lshift / Rshift Shift / Right Shift
方向键-上 Up Up Arrow
方向键-下 Down Down Arrow
方向键-左 Left Left Arrow
方向键-右 Right Right Arrow

手势(组合键)

使用组合键,例如ctrl+f来进行查找。对应的结构化表达为 GESTURE(actions=[KEY_DOWN(key='Lcontrol'), KEY_PRESS(key='A'), KEY_UP(key='Lcontrol')])GESTURE仅包含一个参数 actions,该参数的取值为一个列表,列表中的每一个元素为以下三个动作之一:

  1. KEY_DOWN:按下某一个键,但不抬起;

  2. KEY_PRESS:敲击某一个按键,即按下并抬起;

  3. KEY_UP:松开某一个已经按下的按键。

启动应用或链接(LAUNCH)

直接打开某个应用,或者在浏览器中打开某个链接。LAUNCH操作接收appurl两个参数,前者表示需要打开的应用名,后者表示需要打开的链接。如果同时给定两个参数,则仅有 url生效。例如:

  1. LAUNCH(app='设置', url='None'):打开系统设置;

  2. LAUNCH(app='None', url='``baidu.com``'):打开百度首页。

引用文本内容(QUOTE_TEXT)

识别并处理给定区域中的文本内容,将结果存储在变量中供后续使用。例如:

QUOTE_TEXT(box=[[387,249,727,317]], element_type='文本', element_info='券后价:17.00', output='__CogName_商品价格__', result='17.00')

QUOTE_TEXT(box=[[000,086,999,932]], auto_scroll=True, element_type='窗口', element_info='CogAgent技术报告博客', output='__CogName_技术报告__')

它所支持的参数如下表所示:

参数名 可选与否 解释
box 必选 请参考“四种鼠标操作”中的解释。
element_type 可选 请参考“四种鼠标操作”中的解释。
element_info 可选 请参考“四种鼠标操作”中的解释。
output 必选 变量名,表示引用结果的存储位置。格式为__CogName_xxx__
result 可选 表示文本引用的结果。如果文本引用结果过长,则result取值中会带有省略号,甚至没有这一参数。在这种情况下,CogAgent 端侧应用需要自行调用 OCR 服务来获取引用结果。
auto_scroll 可选 默认值为False。如果auto_scroll为真,则 CogAgent 端侧应用需要自行向下滚动列表直到列表底部,同时获取列表内容作为医用文本的结果。当需要被引用的文本很长的时候,需要设置auto_scroll为真。

调用大语言模型(LLM)与变量使用

组织提示词并调用大预言模型来计算结果。这一动作所接收的参数如下所示:

参数名 可选与否 解释
prompt 必选 调用大语言模型所使用的 prompt,其中使用到的变量名会被替换成实际的取值。
output 必选 变量名,表示调用大语言模型的结果所存储的位置。格式为__CogName_xxx__
result 可选 表示调用大语言模型的结果。如果结果过长,则result取值中会带有省略号,甚至没有这一参数。在这种情况下,CogAgent 端侧应用需要自行调用大语言模型服务来获取结果。

例如,通过以下两个操作,可以总结本页面的全部内容:

  1. 引用本页面的全部内容。由于页面中内容很多,需要在引用时设置auto_scroll=True

    1. QUOTE_TEXT(box=[[000,086,999,932]], auto_scroll=True, element_type='窗口', element_info='CogAgent技术报告博客', output='__CogName_技术报告__')
  2. 调用大预言模型,总结技术报告的内容。技术报告的内容已经存储在变量__CogName_技术报告__中,因此应该在参数 prompt中直接使用这一变量;在调用大语言模型生成总结内容时,__CogName_技术报告__需要被替换成实际的取值。

    1. LLM(prompt='总结以下内容:__CogName_技术报告__', output='__CogName_技术报告总结__')

引用剪贴板内容(QUOTE_CLIPBOARD)

将剪贴板中的内容存储在某一个变量中,供后续步骤使用。很多网页/应用会提供“点击复制到剪贴板”的功能。QUOTE_CLIPBOARD 可以让模型快速获得并使用剪贴板的内容。

以下是一个结构化表达的例子: QUOTE_CLIPBORAD(output='__CogName_快速排序代码__', result='def quick_sort(arr):\n\tif len(arr) <= 1:\n\t\treturn arr\n\t...')

结束(END)

一个特殊的操作,表示任务已经完成。