鼠标操作包含:左键单击(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(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='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
,该参数的取值为一个列表,列表中的每一个元素为以下三个动作之一:
-
KEY_DOWN
:按下某一个键,但不抬起; -
KEY_PRESS
:敲击某一个按键,即按下并抬起; -
KEY_UP
:松开某一个已经按下的按键。
直接打开某个应用,或者在浏览器中打开某个链接。LAUNCH
操作接收app
和url
两个参数,前者表示需要打开的应用名,后者表示需要打开的链接。如果同时给定两个参数,则仅有
url
生效。例如:
-
LAUNCH(app='设置', url='None')
:打开系统设置; -
LAUNCH(app='None', url='``baidu.com``')
:打开百度首页。
识别并处理给定区域中的文本内容,将结果存储在变量中供后续使用。例如:
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 为真。 |
组织提示词并调用大预言模型来计算结果。这一动作所接收的参数如下所示:
参数名 | 可选与否 | 解释 |
---|---|---|
prompt | 必选 | 调用大语言模型所使用的 prompt,其中使用到的变量名会被替换成实际的取值。 |
output | 必选 | 变量名,表示调用大语言模型的结果所存储的位置。格式为__CogName_xxx__ 。 |
result | 可选 | 表示调用大语言模型的结果。如果结果过长,则result 取值中会带有省略号,甚至没有这一参数。在这种情况下,CogAgent 端侧应用需要自行调用大语言模型服务来获取结果。 |
例如,通过以下两个操作,可以总结本页面的全部内容:
-
引用本页面的全部内容。由于页面中内容很多,需要在引用时设置
auto_scroll=True
QUOTE_TEXT(box=[[000,086,999,932]], auto_scroll=True, element_type='窗口', element_info='CogAgent技术报告博客', output='__CogName_技术报告__')
-
调用大预言模型,总结技术报告的内容。技术报告的内容已经存储在变量
__CogName_技术报告__
中,因此应该在参数prompt
中直接使用这一变量;在调用大语言模型生成总结内容时,__CogName_技术报告__
需要被替换成实际的取值。LLM(prompt='总结以下内容:__CogName_技术报告__', output='__CogName_技术报告总结__')
将剪贴板中的内容存储在某一个变量中,供后续步骤使用。很多网页/应用会提供“点击复制到剪贴板”的功能。QUOTE_CLIPBOARD
可以让模型快速获得并使用剪贴板的内容。
以下是一个结构化表达的例子:
QUOTE_CLIPBORAD(output='__CogName_快速排序代码__', result='def quick_sort(arr):\n\tif len(arr) <= 1:\n\t\treturn arr\n\t...')
一个特殊的操作,表示任务已经完成。