搜索文档...

开始输入以搜索文档

平台指南

对模型提供商的同意

为什么部分提供商需要你的同意,如何给予或撤回同意,以及 API 客户端如何处理同意错误。

UnoRouter 上部分模型背后的提供商会将你的输入用于其自身目的,例如保存输入或用于训练其模型。还有一些提供商未公开其如何处理输入。由于无法排除此类使用,UnoRouter 对它们同样对待。

如果此类提供商位于数据保护水平不充分的国家,只有在你对该提供商同意一次之后,你的输入才会被传输到那里(GDPR 第 49 条第 1 款 (a) 项)。同意中会写明提供商及其所在国家,并适用于该提供商提供的所有模型。

位于数据保护充分国家的此类提供商无需同意。在选择此类模型前,你会看到一条提示。

详情请见隐私政策以及使用条款第 6 节。

打开页脚和账户菜单中的同意页面。“提供商”标签页列出每个需要同意的提供商,显示其名称和国家、如何处理输入(训练、存储或未知)、有多少模型和连接处于可用状态,以及你是否已同意。

同意页面的“提供商”标签页,显示每个提供商的名称、国家、输入处理方式和同意状态

“模型”标签页则列出模型。在某个模型上点击“同意”会打开该模型的视图:只显示该模型仍需要的提供商,点击“同意全部”即可用一段写明每个提供商的文字一次性同意。

单个模型的同意视图,显示仍需要的提供商和“同意全部”按钮

同意对话框会在你确认前显示完整文本,与你的同意一起保存的正是这段文本。点击“撤回”可随时撤回对某个提供商的同意;在你再次同意之前,该提供商提供的模型将对你不可用。

同意对话框,写明提供商、所在国家、风险以及输入处理方式

没有账户时,同意与你的浏览器绑定。访客使用同一页面或聊天菜单中的“管理同意”。

你可以反对将你的输入传递给将其用于自身目的的提供商(GDPR 第 21 条)。开关位于同意页面顶部和账户设置中。开启期间,你的请求会绕过这些提供商,仅由它们提供的模型将对你不可用。

同意页面顶部的反对开关

当请求发往其提供商仍需你同意的模型时,API 会返回 403 和代码 consent_required。消息中会写明缺少同意的提供商及其国家,并附上该模型的同意页面链接;param 中包含这些提供商的代码,以逗号分隔。

json
HTTP/1.1 403 Forbidden

{
  "error": {
    "code": "consent_required",
    "message": "claude-opus-5.5 needs your consent for these providers: a7 (China), ih (Indonesia), pol (Hong Kong). Give it once at https://unorouter.com/consents?model=claude-opus-5.5; it covers every model these providers serve. (request id: ...)",
    "param": "CN-19,ID-01,HK-01",
    "type": "new_api_error"
  }
}

请将链接展示给密钥的所有者。同意后,同一请求即可通过。同意适用于该提供商的所有模型,因此一次同意往往可以解锁多个模型。

typescript
const model = "claude-opus-5.5";
const res = await fetch("https://api.unorouter.com/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.UNOROUTER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ model, messages: [{ role: "user", content: "Hello" }] }),
});

if (res.status === 403) {
  const body = await res.json();
  if (body.error?.code === "consent_required") {
    // The message names the providers; the consent page for the model:
    const link = `https://unorouter.com/consents?model=${encodeURIComponent(model)}`;
    showToUser(`${body.error.message}\n${link}`);
  }
}
代码含义
consent_required该模型的某个提供商需要你的同意。打开消息中的链接,给予同意后重新发送请求。
consent_business该模型需要同意,而企业账户无法给予同意。请选择其他模型。
own_purpose_objected你已反对用于自身目的,而该模型仅由此类提供商提供。请选择其他模型或撤回反对。

拒绝未经同意的请求将分阶段启用,并会提前公告。在此之前请求不会被拒绝,但你现在就可以给予同意。