Skip to main content
OpenAPI

模型 API

查询模型档位与新模型,并按群组管理它们在组织内的可见范围。

模型目录由 Qoder 统一维护。模型 API 用于查询各场景下的档位和新模型、按群组设置它们在本组织内的可见范围,以及设置后续新发布模型的默认可见性。
适用版本:Enterprise。
调用前请先完成获取 API Key,并阅读 OpenAPI 约定与规范。

前置条件

  • 请求头携带 Authorization: Bearer <api_key>。仅支持 Organization API Key,不支持个人凭证或服务账号凭证。
  • 带 JSON 请求体时,发送 Content-Type: application/json。
  • organization_id 必须是 API Key 所属组织。
  • groupIds 使用群组 ID,手动群组和 SCIM 同步群组均可使用。

关键行为

  • 模型按场景(scenarioType)组织:general(通用编码)、experts(Experts)、qoderwork(QoderWork)。每个场景下有两类可独立设置可见范围的目标:档位(level,例如 auto、ultimate)和新模型(modelKey)。
  • 实际可管理的档位和新模型以列出模型的返回结果为准,会随区域和模型目录发布而变化。请勿硬编码 level 或 modelKey。
  • 组织从未配置过的目标按 all 处理;关闭新模型默认可见性后首次发布的目标除外,见更新新模型默认可见性。
  • 删除群组会将该群组从所有名单中移除,但不会改变 scope。名单被删空后,group 目标对全组织不可见,exclude_group 目标对全组织可见;此时查询返回原 scope 和空 groupIds。
  • 本 API 返回组织配置的策略,不返回某个用户最终可见的模型。

可见范围

每个档位或新模型都有一个 scope。用户请求模型列表时,服务端按用户所属群组判定:
scopegroupIds名单内群组的成员其他成员(含未加入任何群组)
all必须为空可见可见
group至少 1 项可见不可见
exclude_group至少 1 项不可见可见
none必须为空不可见不可见
用户属于名单中任一群组即视为命中名单。

数据模型

Scenario

字段类型说明
scenarioTypestring场景类型
levelsModelPolicy 数组档位列表,按目录顺序;无档位时为 []
newModelsModelPolicy 数组新模型列表;无新模型时为 []

ModelPolicy

字段类型说明
levelstring档位标识;仅出现在 levels 条目中
modelKeystring新模型标识;仅出现在 newModels 条目中
displayNamestring展示名,仅用于展示;可能与客户端模型列表中的名称不同
scopestring当前可见范围:all、group、exclude_group 或 none
groupIdsstring 数组名单群组 ID,顺序不保证;all、none 时为 []
条目不包含 scenarioType,场景以所在的 Scenario 为准。

API 参考

列出模型

GET /v1/organizations/{organization_id}/official-models
查询参数类型必填说明
scenarioTypestring否只返回指定场景:general、experts 或 qoderwork;省略时返回全部场景

成功响应(200 OK)

{
  "scenarios": [
    {
      "scenarioType": "general",
      "levels": [
        {
          "level": "auto",
          "displayName": "Auto",
          "scope": "all",
          "groupIds": []
        },
        {
          "level": "ultimate",
          "displayName": "Ultimate",
          "scope": "exclude_group",
          "groupIds": ["1c8f3ee2-b970-4b61-93f9-f8be080ae945"]
        }
      ],
      "newModels": [
        {
          "modelKey": "example-model",
          "displayName": "Example Model",
          "scope": "group",
          "groupIds": ["1c8f3ee2-b970-4b61-93f9-f8be080ae945"]
        }
      ]
    },
    {
      "scenarioType": "experts",
      "levels": [],
      "newModels": []
    },
    {
      "scenarioType": "qoderwork",
      "levels": [],
      "newModels": []
    }
  ]
}
省略 scenarioType 时,scenarios 固定按 general、experts、qoderwork 顺序返回三项。 scenarioType 取值无效时返回 400,但响应体为 {"error": "invalid scenarioType: must be one of general/experts/qoderwork"},不含 requestId 和 code。请按 HTTP 状态码判断该错误。

批量更新模型策略

PUT /v1/organizations/{organization_id}/official-models/policy 更新请求中列出的档位或新模型的可见范围,未列出的目标保持不变。每个列出的目标按请求内容整体替换其 scope 和名单。

请求体

{
  "policies": [
    {
      "scenarioType": "general",
      "level": "ultimate",
      "scope": "exclude_group",
      "groupIds": ["1c8f3ee2-b970-4b61-93f9-f8be080ae945"]
    },
    {
      "scenarioType": "experts",
      "modelKey": "example-model",
      "scope": "group",
      "groupIds": ["1c8f3ee2-b970-4b61-93f9-f8be080ae945"]
    },
    {
      "scenarioType": "qoderwork",
      "level": "premium",
      "scope": "none"
    }
  ]
}
字段类型必填说明
policiesobject 数组是1–100 项
policies[].scenarioTypestring是general、experts 或 qoderwork
policies[].levelstring条件档位标识;与 modelKey 二选一
policies[].modelKeystring条件新模型标识;与 level 二选一
policies[].scopestring是all、group、exclude_group 或 none
policies[].groupIdsstring 数组条件group、exclude_group 时至少 1 项;all、none 时省略或传 []
  • level 或 modelKey 必须存在于列出模型返回的对应场景中。
  • 同一请求中不得重复更新同一目标。
  • 字符串字段会去除首尾空格;groupIds 会丢弃空字符串并去重后再校验。每个群组都必须属于当前组织。
  • 每项只接受上表中的 5 个字段。从列出接口的响应复制条目时,请删除 displayName 并补上 scenarioType。
成功时返回 200 OK。响应中的 policies 与请求顺序一致,每项包含 scenarioType、level 或 modelKey、scope 和去重后的 groupIds,不包含 displayName。
{
  "policies": [
    {
      "scenarioType": "qoderwork",
      "level": "premium",
      "scope": "none",
      "groupIds": []
    }
  ]
}
服务端先校验整批请求,任一项失败则返回 400 BadRequest,不写入任何数据。校验通过后的写入不是单一事务:返回 5xx 或请求超时时,部分目标可能已经生效。该接口按目标整体替换,重复提交同一请求结果相同;重试前请先调用列出模型确认现状。

获取新模型默认可见性

GET /v1/organizations/{organization_id}/official-models/new-model-default

成功响应(200 OK)

{
  "defaultVisible": true
}
组织从未设置时,defaultVisible 为 true。

更新新模型默认可见性

PUT /v1/organizations/{organization_id}/official-models/new-model-default 设置后续新发布的档位和新模型是否默认对本组织可见。

请求体

{
  "defaultVisible": false
}
字段类型必填说明
defaultVisibleboolean是新发布目标是否默认可见
成功时返回 200 OK 和设置后的值,结构同获取新模型默认可见性。 平台每次发布模型目录时读取该值,并只作用于本次首次出现的档位和新模型:
defaultVisible新发布目标的处理
true不写入策略,按 all 对全组织可见
false为本组织写入 scope: "none",全组织不可见
修改该值不会回溯调整已发布的目标,也不会覆盖已有策略。从 false 改回 true 后,之前已写入 none 的目标仍不可见,需通过批量更新模型策略显式修改。

错误

错误响应使用 OpenAPI 约定与规范中定义的通用结构;scenarioType 参数错误例外,见列出模型。
HTTP 状态码错误码常见原因
400BadRequest请求体格式错误;场景、档位或新模型不存在;scope 与 groupIds 不匹配;群组不属于当前组织;同一目标重复
401UnauthorizedAPI Key 缺失、无效、过期或已吊销
403ForbiddenAPI Key 不属于目标组织,或不是 Organization API Key
403OrganizationPlanCapabilityForbidden组织未开通模型策略能力
404NotFound请求路径不存在
限流(429)和服务端错误(5xx)请按 OpenAPI 约定与规范退避重试。