OpenAI 与 OpenAI Image
OAR 提供两个运行在你自己 OpenAI API 密钥上的提供商,你只需为两者保存一次密钥。
- OpenAI (BYOK) 是一个编程智能体。它就是 GitHub Copilot 运行时,用你的密钥指向 OpenAI API(或兼容的端点),而不是使用 Copilot 套餐的模型。它像 Copilot 对话一样读取文件、运行命令和编辑代码。
- OpenAI Image (BYOK) 不是智能体。它是一种对话,其中每条消息都会变成一次对 OpenAI Images API 的请求,每条回复都是一张或多张图片。
两者都向你的 OpenAI 账户计费。OpenAI 智能体需要中继主机上有 GitHub Copilot CLI,因为它由 Copilot 运行时运行;见 GitHub Copilot。图像提供商不使用 Copilot CLI。
设置 #
打开 Settings → Providers → OpenAI(设置 → 提供商 → OpenAI)。
| 字段 | 说明 | 默认值 |
|---|---|---|
| OpenAI API key(OpenAI API 密钥) | 你的密钥。在保存密钥之前,占位符显示 OpenAI 密钥的开头部分;保存之后显示为 Saved API key (enter to replace)。 |
无 |
| Enable OpenAI API key for New Chat model selection(在新建对话的模型选择中启用 OpenAI API 密钥) | 在 New Chat(新建对话)中提供 OpenAI (BYOK) 和 OpenAI Image (BYOK)。一旦你保存了密钥它就会开启,在密钥存在之前不可用。 | 首次保存后开启 |
| OpenAI model ID(OpenAI 模型 ID) | OpenAI 智能体默认使用的模型。 | gpt- |
| Base URL(基础 URL)(可选) | 请求发往的地址。使用 OpenAI 本身时留空。 | https:// |
按 Save OpenAI settings(保存 OpenAI 设置)。中继随后会向该端点请求它的模型列表(基础 URL 下的 /),并把找到的模型添加到各模型选择器中。如果请求失败,设置仍会保存,并有一条提示说明原因;之前的模型会保留。
密钥存储在主机上中继的数据库中。该字段不会再次显示它:密钥保存后,占位符显示为 Saved API key (enter to replace)。留空即可保留已保存的密钥,或输入新密钥来替换它。
字段下方的状态行会说明当前所处的状态:
OpenAI API is enabled. Select OpenAI in New Chat to use model gpt-4o.
API key saved but currently disabled. Enable it to allow OpenAI selection in New Chat.
Not configured. New conversations use GitHub Copilot.
关闭或删除密钥 #
| 你的操作 | 结果 |
|---|---|
| 关闭启用开关 | New Chat 不再提供这两个提供商。密钥和模型列表仍然保存着。尚未发送消息的对话保持原样。 |
| 按 Remove saved key(删除已保存的密钥) | 确认后,密钥和模型列表会被删除,OpenAI 会被关闭。尚未发送消息且没有排队内容的对话会移到 Copilot。一条提示会说明新对话使用 GitHub Copilot。 |
| 在某个 OpenAI 对话有消息或排队项时按 Remove saved key | 被拒绝。会弹出提示 Cannot remove Open,密钥保留。 |
图像对话在这里也算作 OpenAI 对话。实际上,只有在每个含有消息的 OpenAI 或 OpenAI Image 对话都被删除之后,才能删除密钥。如果你只是想停止新的 OpenAI 对话,请改为关闭开关。其他提供商的对话不受影响。
其他端点 #
在 Base URL 中填入任何支持 OpenAI API 的端点地址,例如 https://,并在 OpenAI API key 中填入该端点所需的密钥。智能体与它通信来进行对话,中继与它通信来进行模型发现和生成图片。再次保存默认地址会清除已存储的值。
智能体需要一个支持工具调用和流式传输的模型,上下文窗口至少为 128k token 才能获得最佳效果。这是 Copilot CLI 对任何自带密钥模型的要求;OAR 不会检查。图像对话需要一个具有图像生成路由的端点(如需编辑,还要有图像编辑路由),并且该端点要列出一个图像模型。
OpenAI 智能体 #
在 New Chat 中选择 OpenAI (BYOK) 作为 Provider(提供商)。模型列表是为你的密钥保存的那份。之后该对话的行为与 Copilot 对话一样:相同的模式选择器、队列、引导、提问卡片和文件工具。对话框见开始对话,各模式见中继模式。
运行在 Copilot 运行时上带来的结果:
-
Copilot 引擎决定功能。 它是 Settings → Providers → Copilot → Copilot engine(设置 → 提供商 → Copilot → Copilot 引擎)下的中继范围选择,在对话的 worker 启动时读取。引导、后台任务面板和提问卡片都取决于它;见 GitHub Copilot。
-
模型是固定的。 发送第一条消息后,输入区会锁定为对话开始时所用的模型,输入框上方的提示会写出它的名称。
-
推理强度取决于模型。 Reasoning effort(推理强度)的选项随模型名称而定。默认预选第一个选项,除非你上次用的是另一个。
模型名称开头 选项 gpt-、5 codexnone、low、medium、high、xhigho1、o3、o4low、medium、high其他任何名称 none -
传输格式。
gpt-、5 codex-、o1、o1-、o3、o3-和o4-模型使用 Responses API;其他模型使用 Chat Completions。如果你的端点只支持两者之一,这一点就很重要。 -
没有套餐用量。 OpenAI 的轮次在回复下方没有用量行,在 Check Usage(查看用量)中也没有条目;它们只用于 Copilot。压缩、重启和恢复与 Copilot 相同:见压缩和重启与恢复。
OpenAI Image 图像对话 #
图像对话用于根据描述生成和修改图片。这里没有智能体:中继把你的消息发送给 Images API,并在对话中显示返回的结果。
开始一个图像对话 #
- 打开 New Chat,把 Provider 设为 OpenAI Image (BYOK)。OpenAI 启用后,它会出现在 OpenAI (BYOK) 旁边。
- 选择一个 Model(模型)。只列出图像模型:名称以
gpt-或image- dall-开头的模型。中继的模型发现只保留以e- gpt-、chatgpt-、o1、o3、o4-、codex-或openai/开头的名称,因此gpt-模型可以从你的端点发现,而image- * dall-模型只有在你把它的 ID 填为 OpenAI model ID 时才会出现。如果没有列出任何图像模型,就没有可选的模型。e- * - 设置 Quality(质量)和 Size(尺寸)。
- 按 Start chat(开始对话),然后描述图片。
使用非图像模型的对话会被拒绝:Open。
| 选择器 | 选项 | 默认值 |
|---|---|---|
| Quality | auto、low、medium、high |
你上次用的选项(它与 Reasoning effort 共用记忆),否则为 auto |
Size,gpt- 及其他图像模型 |
auto、1024x1024、1536x1024、1024x1536 |
你上次用的尺寸,否则为 auto |
Size,dall- |
1024x1024、1792x1024、1024x1792 |
如果提供,则为你上次用的尺寸,否则为 1024x1024 |
Size,dall- |
256x256、512x512、1024x1024 |
如果提供,则为你上次用的尺寸,否则为 256x256 |
“上次用的”按浏览器记忆。在打开的对话中,输入区会把这两项保留为选择器:质量位于推理强度的位置,标题为 Quality;尺寸的标题为 Image size(图片尺寸)。因此你可以在每条消息之间更改它们。每条消息生成一张图片。质量和尺寸也可以在开始对话时设置。
编辑与后续消息 #
新消息会生成一张全新的图片。要修改已有的图片,请使用它下方的 Edit this image(编辑此图片):
- 按图片下方的 Edit this image。输入区上方会出现一个小标签,显示 Editing(正在编辑)和图片的名称,并带有一个取消按钮,输入框会提示
Describe how to edit this image…。 - 输入要更改的内容并发送。中继会把这张图片和你的文字发送到 Images API 的编辑路由,新图片会作为回复出现。
- 新图片同样有 Edit this image,还有一个 Edited from previous image(由上一张图片编辑而来)链接,可以跳回它所来自的那张图片。
由于编辑从你按下按钮的那张图片开始,你可以分支:再次编辑较早的图片,而不会把后面的图片带进来。消息发送后,小标签会清除。
你也可以在图像对话中给消息附加一张图片。附加的第一张图片就是被编辑的图片。只使用第一张。
关闭此功能
Edit this image 属于 Settings → Features(设置 → 功能)中的 Generated-image continuity(生成图片连续性)设置,默认开启。关闭后,该按钮会消失,后续消息与之前的图片之间也没有链接,但附加图片仍会编辑它。
图片存放在哪里 #
中继把每张生成的图片作为文件保存在主机上,位于 Copilot CLI 的会话状态文件夹(~/.,或 COPILOT_ 指定的文件夹)中对应对话的下面。它从那里在对话中显示这些图片,只读分享链接也会显示它们。只要对话还在,它们就会保留;删除对话会删除它的图片。
图像对话没有什么 #
请求只包含你的文字,编辑时再加一张图片。因此没有可读写的工作目录、没有工具、没有来自智能体的提问、不能引导正在运行的一轮、没有后台任务,也没有压缩。模式选择器仍会显示,但没有效果;见中继模式。除了请求本身,中继主机上不会运行任何东西。
如果请求失败,对话会在回复中显示原因。端点报告为客户端错误(状态码 400 到 499)的失败不会重试;该轮会以 Error code: relay. 失败。网络错误或服务器错误会重试。如果中继在图片可能已经生成之后被中断,它不会再次运行,以避免重复。
费用 #
两个提供商都向你的 OpenAI 账户计费,或者向你的端点所属的账户计费。OAR 不计量这些费用:OpenAI 的轮次没有用量行,在 Check Usage 中也没有条目,图像请求不显示费用。请在你的提供商控制台中关注你的花费。一条图像消息产生一次图像请求;智能体的一轮可能产生许多次模型请求,因为每个工具步骤都是另一次往返。
对比 #
| OpenAI (BYOK) | OpenAI Image (BYOK) | |
|---|---|---|
| 运行的是什么 | Copilot 运行时,使用你的密钥 | 中继,调用 Images API |
| 需要 Copilot CLI | 是 | 否 |
| 回复 | 文字、代码、工具活动 | 每条消息一张图片 |
| 模型 | 已发现的对话模型;默认 gpt- |
gpt- 和 dall- |
| New Chat 中的选择器 | Reasoning effort | Quality 和 Size |
| 工具、工作目录、中继模式 | 是 | 否(模式选择器没有效果) |
| 引导、后台任务、提问卡片 | 是(SDK 引擎) | 否 |
| 后续消息 | 对话继续 | Edit this image,或附加的图片 |
无法正常工作时 #
| 你看到的 | 原因与解决方法 |
|---|---|
| Provider 中没有 OpenAI (BYOK) 和 OpenAI Image (BYOK) | 没有保存密钥,或启用开关已关闭。打开 Settings → Providers → OpenAI。 |
开始对话时出现 Open |
没有保存密钥。重新保存一个。 |
Save an Open |
你在没有保存密钥的情况下打开了开关。输入密钥并按 Save OpenAI settings。 |
保存后出现模型发现失败的提示,例如 Open |
端点拒绝了密钥,或基础 URL 有误。设置已保存;修正密钥或 URL 后再次保存。 |
Open |
该模型不在已保存的列表中。检查 OpenAI model ID 和端点的模型列表,或在 Select Models(选择模型)中按 Refresh(刷新)。 |
| 图像对话没有可选的模型 | 端点没有列出任何 gpt- 或 dall- 模型。 |
Open 或其他状态码 |
端点拒绝了请求。状态码后面跟着它消息的前 240 个字符。常见原因是密钥错误、无权访问该模型,或尺寸或质量被拒绝。 |
Open |
中继无法连接到端点。检查基础 URL 和主机的网络。 |
编辑时提示 The parent generated image is unavailable |
图片的文件已从主机上消失。从一张新图片开始。 |
Cannot remove Open |
见关闭或删除密钥。 |
| OpenAI 智能体无法启动 | 检查主机上是否安装了 Copilot CLI(见 GitHub Copilot),以及模型是否适合该端点,包括上面提到的传输格式。 |