ChatGPT 升级为实时协作助手

全文3218字,阅读约需10分钟,帮我划重点

划重点

01ChatGPT 桌面应用在 Mac 中引入了与其他第三方应用协作的功能,支持 ChatGPT Plus 和 Team 用户。

02要使用协作功能,首先确保应用正在运行,然后在 ChatGPT 的聊天栏中点击 Work with Apps 按钮,选择一个第三方应用。

03协作状态下,ChatGPT 将在聊天栏上方显示横幅,显示正在与哪些应用程序协作。

04发送消息时,ChatGPT 将根据这些应用程序中的内容给出更准确的回答。

05此外,ChatGPT 将在其回复中加入你选择的应用程序中的内容,提供更精准的答案。

以上内容由腾讯混元大模型生成,仅供参考

ChatGPT 桌面应用在 Mac 中引入了与其他第三方应用协作的功能,允许你在与 ChatGPT 互动时,通过将编码应用程序中的内容纳入对话,获得更智能、更精准的回答。这一功能目前处于早期测试阶段,支持 ChatGPT Plus 和 Team 用户,预计在未来几周内将开放给 ChatGPT 企业用户和教育用户(Work with Apps on macOS[1])。

图片

如何协作

正在运行

要与 ChatGPT 兼容的应用程序协作,首先要确保应用正在运行(如 VS Code、Xcode 或终端等)。然后在 ChatGPT 的聊天栏中点击 Work with Apps 按钮,选择一个第三方应用。

图片

协作状态

如果启用了此功能,在与 ChatGPT 对话时,将在聊天栏上方看到一个横幅,显示 ChatGPT 正在与哪些应用程序协作。在发送消息时,ChatGPT 将根据这些应用程序中的内容给出更准确的回答。

  • 如果没有看到横幅,说明当前没有应用程序被协作,ChatGPT 仅使用聊天输入的内容进行回复。

  • 鼠标悬停在横幅上,可以查看 ChatGPT 使用了来自应用程序的哪些内容。

图片

发送消息

一旦发送消息,ChatGPT 将在其回复中加入你选择的应用程序中的内容,提供更精准的答案。

图片

这些内容将成为聊天历史的一部分,保存在你的账户中,直到你手动删除它。删除聊天或删除账户后,聊天记录将在 30 天内从 OpenAI 的系统中删除,除非这些内容已经去标识化并与你的账户解绑,或者 OpenAI 需要因安全或法律原因保留这些内容。有关数据控制的更多信息,可查看此链接 Data Controls FAQ[2]

应用内容

应用内的哪些内容会随消息一起发送?

  • 在与编辑器和 IDE(如 Xcode、VS Code、TextEdit)协作时

    • ChatGPT 包括最前面的编辑器窗口中的完整内容,直到达到截断限制。

    • 如果你在编辑器内选中了某部分文本,ChatGPT 会专注于你选择的内容(该窗格的完整内容仍然会作为上下文包含在内)。

  • 与终端(Terminal、iTerm)协作时

    • ChatGPT 包括打开窗格中的最后 200 行内容。

    • 如果你在窗格中选中了某部分文本,ChatGPT 会专注于你选择的内容,并包含邻近的文本,直到达到截断限制。

你可以通过 设置(Settings) > 与应用程序协作(Work with Apps) > 管理应用程序(Manage Apps) 查看计算机上哪些应用程序是兼容的。

图片

开启配置

要启用 ChatGPT 与大多数兼容应用程序协作,需使用 macOS 的无障碍 API 来查询内容。这也意味着,你可以通过在设置中禁用 ChatGPT 的无障碍权限,来禁用该功能。

接上一张截图,继续点击任意 Enable Permission 按钮出现弹窗,然后点击 Open System Settings... 按钮会跳转至系统隐私与安全管理 Privacy & Security,找到 ChatGPT 开启即可。

图片

开启成功后,ChatGPT 中的权限会发生变化。这种方式只能启用 TextEditXcodeTerminalVS Code 则需要安装插件。

图片

📌 Accessibility API

macOS 的 Accessibility API[3](无障碍应用程序编程接口)是一个专为提高应用程序可访问性而设计的接口,允许开发者创建能够支持屏幕阅读器、语音控制、键盘辅助功能等无障碍功能的应用。它可以让开发者获取和操控界面元素的状态和属性,使得有视力或运动障碍的用户能够更容易地使用应用程序。

主要功能

  • 获取界面元素信息:开发者可以使用 Accessibility API 访问 UI 元素的描述(如按钮、文本框、标签等),并提取它们的状态和位置。这对于制作符合无障碍标准的应用至关重要。

  • 自动化和控制应用程序:通过这个 API,开发者可以创建自动化工具或控制程序的行为,类似于模拟用户交互,例如点击按钮、输入文本或滚动视图等。

  • 语音反馈支持:与语音合成(VoiceOver)功能结合使用时,Accessibility API 可以提供语音反馈,帮助视障用户理解当前界面的内容和交互。

  • 无障碍功能控制:开发者还可以通过 API 让应用程序支持语音命令、鼠标替代输入或其他定制化的辅助功能,以确保更多的用户能够访问和使用应用。

  • 系统级别集成:它不仅限于单个应用程序,还可以与 macOS 的其他无障碍工具集成,如 VoiceOver(屏幕阅读器)、Zoom(屏幕放大镜)等,提升系统的整体无障碍性。

使用场景

  • 屏幕阅读器和语音反馈:当用户使用 VoiceOver 时,应用程序可以将其界面元素标识和状态信息传递给语音合成系统,以便语音反馈。

  • 键盘和鼠标替代输入:在不使用鼠标的情况下,用户可以通过键盘或其他辅助设备控制界面元素,进行点击、选择、输入等操作。

  • 自动化测试和辅助工具:使用该 API,开发者可以编写自动化脚本测试应用的无障碍特性,或者为有特殊需求的用户定制无障碍功能。

安全 & 隐私

由于该 API 可以访问应用的 UI 元素,macOS 对其进行了权限控制。在使用时,应用需要请求用户授权以允许访问无障碍功能,确保用户的数据隐私和系统安全。这也意味着用户可以随时禁用应用的无障碍权限,以保护隐私或避免不必要的功能干扰。

VS Code 插件

Visual Studio Code 插件仅适用于 ChatGPT macOS 应用的 “Work with Apps” 功能(How to install the Work with Apps Visual Studio Code extension[4])。

  1. 在开始安装之前,确保 ChatGPT macOS 应用已更新至最新版。

  2. 下载插件 https://persistent.oaistatic.com/pair-with-ai/openai-chatgpt-latest.vsix(这是 OpenAI 的静态资源链接,还未发布到 VS Code 插件市场)。

  3. 打开 Visual Studio Code。通过快捷键 CMD-Shift-P 打开命令面板。在命令面板中选择 Extensions: Install from VSIX…

  4. 安装完成后,可以在 Visual Studio Code 的扩展中看到 “ChatGPT – Work with VS Code on macOS” 扩展,表示安装成功。

图片

真实测试

因时间比较仓促,我对这几个 App 只进行了简单测试。发现当选中某个应用进行协作时,ChatGPT 可以做到实时响应当前应用中的内容(比如切换文件)。这确实很像之前 ChatGPT 视频演示的实时读取屏幕内容(GPT-4o:OpenAI 发布最强人机交互模型)。

令我比较惊讶的是,它的确可以获取到更长的上下文内容,而非可见屏幕区域内的文本。这里执行的 cls 命令会对终端窗口进行清屏操作,但它仍能获取到上一个执行命令。

图片

TextEdit 中测试了一下内容读取。

图片

在 VS Code 中测试了文件切换及代码解释。

在 VS Code 中测试了选择部分代码进行解释。

禁用协作

Work with Apps 功能过于强大,如果你注重隐私不想使用该功能,也可以将其从聊天栏中移除(避免误操作)。

图片

个人浅思

前段时间我就提到过 感觉 ai 的下半场大概率是 app + system (OS),没想到这么快就来了。其实也不难理解,因为 AI 这个大脑已经有了,就该指挥各种工具或系统来干活了...

图片

再说几句题外话。最近看到各种 prompt 封神、震惊体的文章(主要是朋友圈各种刷屏,不想看到都难)。我不太清楚这些 prompts 对个人解决实际问题有多大的提升,需要特意去神话一些 prompt 的用法。

我和 gpt 对话都是很简单直接的,甚至有点随意。设定角色身份,用简短的文字描述问题(尽量使用专业名词或术语,如果没有对应中文的就用英文)。

其实大部分时候只需描述问题即可,ai 基本都可以根据上下文推出问题类型。也可能我的关注点主要在编程方面,prompt 并不需要太多技巧性的东西。如实精简的描述问题,并告知期望给 ai 即可。如果出现 api 幻觉,还需要借助 docs 来进行一些纠正,但这也仅限于 api 变化不大的场景。

目前很多特殊优化过的 prompt 还挺依赖模型的,比如在 claude 上工作很好,却无法在其他模型上工作。所以有时候我也在想:是这些 prompt 触发了模型固有行为,还是拓展了模型的行为?如果只是简单的触发,很可能会因模型的迭代而莫名失效。

所以我个人很少去研究 prompt 技巧,因为这种优化对高频迭代的“黑盒”大模型来说,随时会失效,也很难迁移到其他大模型。再换句话说,如果 AI 每次都需用户输入一大段前置 prompt 才能更好工作,那需要考虑优化的就不是使用者了,而是模型提供者。好的 prompt 可以学习借鉴,但无脑吹就有点“尬”了...

References

[1][2][3][4]