从基于大模型打造控制mac的应用之appscript认识已了解到appscript 可以轻松触发mac 应用相关操作。例如:深色模式切换
tell application "System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell
想要做的事情
通过文字交互,触发想要的操作,类似于siri,或者可以操作浏览器的事情,这 比siri强多了吧 。
实现
要触发控制应用,还是需要定义好事件,然后通过大模型的回应对应的事件名称,就可以实现。
定义触发app script 的函数
通过node 的 child_process 线程的方式:
const { exec } = require('child_process');
function runAppleScript(script) {
return new Promise((resolve, reject) => {
exec(`osascript -e '${script}'`, (error, stdout, stderr) => {
if (error) {
reject(error);
} else if (stderr) {
reject(stderr);
} else {
resolve(stdout);
}
});
})
}
定义能力
如:
const actionName = 'lightTheme'
const script = `tell application "System Events"
tell appearance preferences
set dark mode to false
end tell
end tell
`
module.exports = {
script,
actionName,
action: {
name: actionName,
descript: '电脑主题切换浅色主题。'
},
result: "切换浅色主题成功"
}
prompt
prompt 只要回应相对应的能力,然后通过触发app script 函数触发能力即可。