English
主导航

旧版 API

管理 API

以编程方式管理组织资源和管理工作流。

管理 API 允许您自动化组织管理工作流,例如用户邀请、审计日志审查、项目管理、API 密钥管理、支出提醒、数据保留和速率限制操作。将它们用于后台办公自动化、安全工作流以及应在控制面板之外运行的操作工具。

有关端点的详细信息,请参阅 管理 API 参考,包括 Admin API 密钥, 邀请, 用户, 项目,且 审计日志.

结合 SDK 使用 Admin API 密钥

To access these endpoints, 创建 Admin API 密钥。Admin API 密钥不能用于非管理类端点。

以下 SDK 版本中添加了对管理 API 的支持,您可能需要更新您的 SDK 版本:

  • Node: 6.36.0
  • Python: 2.34.0
  • Go: 3.34.0
  • Ruby: 0.61.0
  • Java: 4.34.0

设置 OPENAI_ADMIN_KEY,然后初始化适用于您所用语言的 SDK。

使用 Admin API 密钥设置 SDK
1
2
3
4
5
import OpenAI from "openai";

const client = new OpenAI({
  adminAPIKey: process.env.OPENAI_ADMIN_KEY,
});

限制项目的模型访问

使用项目模型权限为项目设置允许列表或拒绝列表。将 mode to allow_list 设置为仅允许列出的模型,或将 mode to deny_list 设置为阻止列出的模型,同时允许其他可用模型。模型 ID 必须对该组织可见,包括可见的微调模型快照。

设置项目模型允许列表/拒绝列表
1
2
3
4
5
6
7
const modelPermissions =
  await client.admin.organization.projects.modelPermissions.update("proj_abc", {
    mode: "allow_list",
    model_ids: ["gpt-4.1", "o3"],
  });

console.log(modelPermissions.mode);

管理支出限制提醒

使用项目支出提醒功能,在项目支出达到阈值时通知您的团队。阈值金额以美分为单位指定。

创建项目支出限制提醒
1
2
3
4
5
6
7
8
9
10
11
12
13
const spendAlert =
  await client.admin.organization.projects.spendAlerts.create("proj_abc", {
    currency: "USD",
    interval: "month",
    notification_channel: {
      recipients: ["billing@example.com"],
      type: "email",
      subject_prefix: "[OpenAI spend]",
    },
    threshold_amount: 50000,
  });

console.log(spendAlert.id);

管理数据保留

使用项目数据保留控制功能,为项目覆盖或继承组织的数据保留策略。将 retention_type to organization_default 设置为继承组织设置。

设置项目数据保留
1
2
3
4
5
6
const dataRetention =
  await client.admin.organization.projects.dataRetention.update("proj_abc", {
    retention_type: "organization_default",
  });

console.log(dataRetention.type);

通过电子邮件邀请用户

使用邀请 (Invites) 端点向电子邮件地址发送组织邀请。

通过电子邮件邀请用户
1
2
3
4
5
6
const invite = await client.admin.organization.invites.create({
  email: "user@example.com",
  role: "reader",
});

console.log(invite.id);

检索审计日志

使用审计日志 (Audit Logs) 端点列出组织最近的用户操作和配置更改。

检索审计日志
1
2
3
4
5
const auditLogs = await client.admin.organization.auditLogs.list({
  limit: 10,
});

console.log(auditLogs.data);