Loading
close

服务提供者

time 更新时间:2026-10-08 16:41:12

服务提供者

AI 服务提供者用于将可调用的上游服务接入 Beacon,供模型网关路由使用。服务来源包括平台外部的 AI 服务和集群内部的模型部署。

schema 支持 OpenAI、AzureOpenAI、AWSBedrock、GCPVertexAI、Anthropic、Cohere;端点通过 endpointUrl 指定。visibility 是历史 API 字段,表示服务接入类型而非资源可见性:public 表示外部 AI 服务,private 表示集群内部模型部署,缺省为 public。外部服务要求 credential.value 非空,内部服务的凭据可省略。

凭据内容不在详情中返回。PUT credential 轮换凭据成功返回 204。被路由引用的服务删除受到引用检查。

models 为尽力探测;后端不可达时可能返回 200、models=[]、unreachable=true。

方法 路径(产品接口统一前缀 /api/v1) 功能
GET /ai-service-providers 查询 AI 服务提供者
POST /ai-service-providers 创建 AI 服务提供者
GET /ai-service-providers/{id} 获取 AI 服务提供者详情
GET /ai-service-providers/{id}/models 探测服务端模型列表
PATCH /ai-service-providers/{id} 更新 AI 服务提供者
DELETE /ai-service-providers/{id} 删除 AI 服务提供者
PUT /ai-service-providers/{id}/credential 轮换 AI 服务提供者凭据

查询 AI 服务提供者

功能介绍

查询 AI 服务提供者。结果可同时包含外部 AI 服务和集群内部模型部署。

访问要求:有效 Token;需要对应资源读权限,并受项目、所有者、公共或共享资源规则限制。

URI

GET /api/v1/ai-service-providers

查询参数

参数 类型 必选 描述
page integer 否 页码,从 1 开始
page_size integer 否 每页数量;建议显式传入,例如 20;省略时部分列表返回全部

请求消息

无请求体。

响应消息

参数 参数类型 描述
items array<provider.response> 结果列表
total integer 匹配总数
page integer 页码,从 1 开始
page_size integer 每页数量

请求示例

GET https://{endpoint}/api/v1/ai-service-providers?page=1&page_size=20
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "items": [
    {
      "id": "id-example",
      "name": "示例资源",
      "description": "",
      "status": "ready",
      "projectId": "projectId-example",
      "ownerUserId": "ownerUserId-example",
      "backend": {
        "catalog": "",
        "type": "",
        "id": "id-example"
      },
      "spec": {
        "providerKey": "",
        "schema": "OpenAI",
        "endpoint": "https://service.example.com",
        "credentialRef": "",
        "status": "ready"
      },
      "inUse": true,
      "createdAt": "2026-09-21T00:00:00Z",
      "updatedAt": "2026-09-21T00:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 1
}

状态码与错误码

成功状态码:200。

HTTP error 说明
500 internal_error failed to list providers
401 unauthorized authentication required

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

创建 AI 服务提供者

功能介绍

创建 AI 服务提供者。

访问要求:有效 Token;需要对应资源写权限,并受项目、所有者、公共或共享资源规则限制。

URI

POST /api/v1/ai-service-providers

请求消息

Content-Type: application/json。

参数 参数类型 是否必选 描述
name string 否 显示名称
schema string 是 服务协议类型;OpenAI / AzureOpenAI / AWSBedrock / GCPVertexAI / Anthropic / Cohere
visibility string 否 服务接入类型,public 表示外部 AI 服务,private 表示集群内部模型部署;缺省为 public。该字段不表示资源的可见范围。
endpointUrl string 是 服务端点 URL;内部服务可根据所选部署自动填充,但请求中仍须提供。
credential provider.credential 条件必选 外部服务(visibility=public)必选,须提供非空密钥;内部服务(visibility=private)可不设置密钥。
labels map<string, string> 否 标签键值对
参数 参数类型 是否必选 描述
credential.type string 条件必选 提供 API Key 凭据时使用 APIKey。
credential.value string 条件必选 外部服务(visibility=public)的 API Key,不能为空。

部署选择与厂商预设用于生成端点、协议等参数,不作为 deploymentId 或 vendor 字段发送。

响应消息

参数 参数类型 描述
id string 资源唯一标识
name string 显示名称
description string 描述
status string 资源状态;具体取值见业务规则
projectId string 所属项目 ID
projectName string 项目名称;空值时可能省略
domainId string 所属部门 ID;空值时可能省略
domainName string 部门名称;空值时可能省略
ownerUserId string 创建者用户 ID
ownerName string 创建者名称;空值时可能省略
backend provider.backendRef 后端资源标识
spec provider.Spec 资源配置快照
inUse boolean 是否正被其他资源引用
usedBy array 引用方信息;空值时可能省略
usedByRoutes array<provider.routeRef> 引用该服务的路由;空值时可能省略
labels map<string, string> 标签键值对;空值时可能省略
createdAt string(date-time) 创建时间,RFC3339
updatedAt string(date-time) 更新时间,RFC3339

请求示例

POST https://{endpoint}/api/v1/ai-service-providers
x-keystone-token: <Keystone Token>
Content-Type: application/json
{
  "name": "示例服务",
  "schema": "OpenAI",
  "visibility": "public",
  "endpointUrl": "https://provider.example.com/v1",
  "credential": {
    "type": "APIKey",
    "value": "REPLACE_WITH_PROVIDER_KEY"
  }
}

正常响应示例

HTTP/1.1 201
Content-Type: application/json
{
  "id": "id-example",
  "name": "示例资源",
  "description": "",
  "status": "ready",
  "projectId": "projectId-example",
  "ownerUserId": "ownerUserId-example",
  "backend": {
    "catalog": "",
    "type": "",
    "id": "id-example"
  },
  "spec": {
    "providerKey": "",
    "schema": "OpenAI",
    "endpoint": "https://service.example.com",
    "credentialRef": "",
    "status": "ready"
  },
  "inUse": true,
  "createdAt": "2026-09-21T00:00:00Z",
  "updatedAt": "2026-09-21T00:00:00Z"
}

状态码与错误码

成功状态码:201。

HTTP error 说明
400 invalid_request malformed JSON body
502 backend_unavailable kubernetes not configured; cannot project provider
401 unauthorized missing project-scoped token; re-authenticate with a project scope
409 conflict 详细原因由 message 返回。
500 internal_error failed to persist provider
403 forbidden write permission required
404 not_found provider not found
422 invalid_request 详细原因由 message 返回。

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

获取 AI 服务提供者详情

功能介绍

获取 AI 服务提供者详情。

访问要求:有效 Token;需要对应资源读权限,并受项目、所有者、公共或共享资源规则限制。

URI

GET /api/v1/ai-service-providers/{id}
参数 类型 必选 描述
id string 是 目标资源 ID

请求消息

无请求体。

响应消息

参数 参数类型 描述
id string 资源唯一标识
name string 显示名称
description string 描述
status string 资源状态;具体取值见业务规则
projectId string 所属项目 ID
projectName string 项目名称;空值时可能省略
domainId string 所属部门 ID;空值时可能省略
domainName string 部门名称;空值时可能省略
ownerUserId string 创建者用户 ID
ownerName string 创建者名称;空值时可能省略
backend provider.backendRef 后端资源标识
spec provider.Spec 资源配置快照
inUse boolean 是否正被其他资源引用
usedBy array 引用方信息;空值时可能省略
usedByRoutes array<provider.routeRef> 引用该服务的路由;空值时可能省略
labels map<string, string> 标签键值对;空值时可能省略
createdAt string(date-time) 创建时间,RFC3339
updatedAt string(date-time) 更新时间,RFC3339

请求示例

GET https://{endpoint}/api/v1/ai-service-providers/resource-id
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "id": "id-example",
  "name": "示例资源",
  "description": "",
  "status": "ready",
  "projectId": "projectId-example",
  "ownerUserId": "ownerUserId-example",
  "backend": {
    "catalog": "",
    "type": "",
    "id": "id-example"
  },
  "spec": {
    "providerKey": "",
    "schema": "OpenAI",
    "endpoint": "https://service.example.com",
    "credentialRef": "",
    "status": "ready"
  },
  "inUse": true,
  "createdAt": "2026-09-21T00:00:00Z",
  "updatedAt": "2026-09-21T00:00:00Z"
}

状态码与错误码

成功状态码:200。

HTTP error 说明
401 unauthorized authentication required
404 not_found provider not found
409 conflict provider already exists
500 internal_error internal server error

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

探测服务端模型列表

功能介绍

探测服务端模型列表。

访问要求:有效 Token;需要对应资源读权限,并受项目、所有者、公共或共享资源规则限制。

URI

GET /api/v1/ai-service-providers/{id}/models
参数 类型 必选 描述
id string 是 目标资源 ID

请求消息

无请求体。

响应消息

参数 参数类型 描述
models array 模型路由列表或模型名称列表,按类型区分
unreachable boolean / null 是否未能访问后端

请求示例

GET https://{endpoint}/api/v1/ai-service-providers/resource-id/models
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "models": [
    ""
  ],
  "unreachable": false
}

状态码与错误码

成功状态码:200。

HTTP error 说明
401 unauthorized authentication required
404 not_found provider not found
409 conflict provider already exists
500 internal_error internal server error

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

更新 AI 服务提供者

功能介绍

更新 AI 服务提供者。

访问要求:有效 Token;需要对应资源写权限,并受项目、所有者、公共或共享资源规则限制。

URI

PATCH /api/v1/ai-service-providers/{id}
参数 类型 必选 描述
id string 是 目标资源 ID

请求消息

Content-Type: application/json。

参数 参数类型 是否必选 描述
name string / null 否 显示名称
schema string / null 否 服务协议类型;OpenAI / AzureOpenAI / AWSBedrock / GCPVertexAI / Anthropic / Cohere
endpointUrl string / null 否 服务端点 URL

响应消息

参数 参数类型 描述
id string 资源唯一标识
name string 显示名称
description string 描述
status string 资源状态;具体取值见业务规则
projectId string 所属项目 ID
projectName string 项目名称;空值时可能省略
domainId string 所属部门 ID;空值时可能省略
domainName string 部门名称;空值时可能省略
ownerUserId string 创建者用户 ID
ownerName string 创建者名称;空值时可能省略
backend provider.backendRef 后端资源标识
spec provider.Spec 资源配置快照
inUse boolean 是否正被其他资源引用
usedBy array 引用方信息;空值时可能省略
usedByRoutes array<provider.routeRef> 引用该服务的路由;空值时可能省略
labels map<string, string> 标签键值对;空值时可能省略
createdAt string(date-time) 创建时间,RFC3339
updatedAt string(date-time) 更新时间,RFC3339

请求示例

PATCH https://{endpoint}/api/v1/ai-service-providers/resource-id
x-keystone-token: <Keystone Token>
Content-Type: application/json
{
  "name": "更新后的名称"
}

正常响应示例

HTTP/1.1 200
Content-Type: application/json
{
  "id": "id-example",
  "name": "示例资源",
  "description": "",
  "status": "ready",
  "projectId": "projectId-example",
  "ownerUserId": "ownerUserId-example",
  "backend": {
    "catalog": "",
    "type": "",
    "id": "id-example"
  },
  "spec": {
    "providerKey": "",
    "schema": "OpenAI",
    "endpoint": "https://service.example.com",
    "credentialRef": "",
    "status": "ready"
  },
  "inUse": true,
  "createdAt": "2026-09-21T00:00:00Z",
  "updatedAt": "2026-09-21T00:00:00Z"
}

状态码与错误码

成功状态码:200。

HTTP error 说明
400 invalid_request malformed JSON body
500 internal_error failed to resolve provider references
409 conflict 详细原因由 message 返回。
403 forbidden write permission required
401 unauthorized authentication required
404 not_found provider not found
422 invalid_request 详细原因由 message 返回。
502 backend_unavailable kubernetes API unavailable

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

删除 AI 服务提供者

功能介绍

删除 AI 服务提供者。

访问要求:有效 Token;需要对应资源写权限,并受项目、所有者、公共或共享资源规则限制。

URI

DELETE /api/v1/ai-service-providers/{id}
参数 类型 必选 描述
id string 是 目标资源 ID

请求消息

无请求体。

响应消息

成功返回 204 No Content,无响应体。

请求示例

DELETE https://{endpoint}/api/v1/ai-service-providers/resource-id
x-keystone-token: <Keystone Token>

正常响应示例

HTTP/1.1 204 No Content

状态码与错误码

成功状态码:204。

HTTP error 说明
500 internal_error failed to resolve provider references
409 conflict 详细原因由 message 返回。
403 forbidden write permission required
401 unauthorized authentication required
404 not_found provider not found
422 invalid_request 详细原因由 message 返回。
502 backend_unavailable kubernetes API unavailable

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

轮换 AI 服务提供者凭据

功能介绍

轮换 AI 服务提供者凭据。

访问要求:有效 Token;需要对应资源写权限,并受项目、所有者、公共或共享资源规则限制。

URI

PUT /api/v1/ai-service-providers/{id}/credential
参数 类型 必选 描述
id string 是 目标资源 ID

请求消息

Content-Type: application/json。

参数 参数类型 是否必选 描述
credential provider.credential 否 访问凭据对象
参数 参数类型 是否必选 描述
credential.type string 是 凭据类型,APIKey。
credential.value string 是 新的 API Key,不能为空。

响应消息

成功返回 204 No Content,无响应体。

请求示例

PUT https://{endpoint}/api/v1/ai-service-providers/resource-id/credential
x-keystone-token: <Keystone Token>
Content-Type: application/json
{
  "credential": {
    "type": "APIKey",
    "value": "REPLACE_WITH_PROVIDER_KEY"
  }
}

正常响应示例

HTTP/1.1 204 No Content

状态码与错误码

成功状态码:204。

HTTP error 说明
400 invalid_request malformed JSON body
502 backend_unavailable kubernetes not configured
403 forbidden write permission required
401 unauthorized authentication required
404 not_found provider not found
409 conflict provider already exists
500 internal_error internal server error
422 invalid_request 详细原因由 message 返回。

此外,认证/授权中间件可返回 401 / 403;后端错误与错误封装见调用方式。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品