Developer guide

使用 API 密钥进行身份验证

用于放置 API 密钥的请求头和 SDK 中要设置的 base URL

CLEVI 网关通过一个 API 密钥对 OpenAI 兼容路径和 Anthropic 兼容路径进行身份验证。
客户端需要设置的值有两个:用于放置密钥的身份验证请求头和 SDK 的 base URL;允许的请求头格式和 base URL 因规范而异。
完成设置后,查询模型列表即可立即确认是否通过身份验证。
身份验证失败时返回 401;通过身份验证后未满足权限或额度条件时返回 403。

请在控制台的 API 密钥页面签发 API 密钥。您也可以在同一页面管理密钥的撤销和使用范围。

身份验证请求头

两种规范都将 API 密钥放在一个请求头中。可以使用 X-API-Key 请求头或 Authorization 请求头之一,允许的格式因规范而异。

请求头OpenAI 兼容Anthropic 兼容
X-API-Key: <密钥>可用可用
Authorization: Bearer <密钥>可用可用
Authorization: <密钥>(不带 Bearer)拒绝可用

在 OpenAI 兼容路径中使用 Authorization 请求头时,需要 Bearer 前缀。如果不带前缀直接发送密钥,网关将拒绝请求。

请求头名称不区分大小写,因此 Anthropic SDK 发送的 x-api-key 请求头也可以直接使用。如果同时指定两个请求头,将优先使用 X-API-Key 的值。

base URL

对于现有 SDK,只需将 base URL 更改为以下地址即可继续使用。两个地址的区别在于是否包含 /v1,请根据规范直接指定相应地址。

规范base URL路径规则
OpenAI 兼容https://platform.clevi.net/api/v2/aiservice/openai/v1将 /v1 包含在 base URL 中。
Anthropic 兼容https://platform.clevi.net/api/v2/aiservice/anthropicAnthropic SDK 会在请求路径中直接添加 /v1,因此以 /v1 之前的部分结尾。

确认身份验证

设置密钥和 base URL 后查询模型列表,即可确认是否通过认证。下面的示例分别使用 curl、OpenAI SDK 和 Anthropic SDK 执行相同的查询。请将 API 密钥页面中签发的密钥填入 sk-... 的位置。

使用 curl 查询时,两种规范都要指定包括 /v1/models 在内的完整路径。第一条命令在 OpenAI 兼容路径中使用 X-API-Key 标头,第二条命令在 Anthropic 兼容路径中使用 Authorization 标头。

curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
  -H "X-API-Key: sk-..."

curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
  -H "Authorization: Bearer sk-..." \
  -H "anthropic-version: 2023-06-01"

OpenAI SDK 的 base_url 应指定为包含 /v1 的地址。

from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)

for model in client.models.list():
    print(model.id)

Anthropic SDK 的 base_url 应指定为在 /v1 之前结束的地址。
认证时直接使用 SDK 发送的 x-api-key 标头。

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)

for model in client.models.list(limit=20).data:
    print(model.id)

无论哪个示例,只要响应为 200,即表示认证成功;响应中的 data 包含可使用此密钥调用的模型列表。如果响应为 401,请按照下一节的顺序检查原因。

认证失败

如果未提供密钥,或发送了已过期、已撤销的密钥,则返回 401。在 OpenAI 兼容路径中不提供密钥进行调用时,将返回以下正文;在 Anthropic 兼容路径中,error.type 为 authentication_error。

{
  "error": {
    "message": "API key is required.",
    "type": "invalid_request_error"
  }
}

收到 401 时,请按以下顺序检查。

  1. 在 API 密钥页面确认密钥状态。如果密钥已过期或已撤销,请重新签发。
  2. 确认标头名称是否为 X-API-Key 或 Authorization。
  3. 如果在 OpenAI 兼容路径中使用 Authorization 标头,请确认是否包含 Bearer 前缀。

修改后,重新执行认证确认一节中的模型列表查询,确认是否返回 200。

配合使用的标头

以下标头均为可选项。为便于追踪问题,建议指定 X-Request-Id。

标头用途省略时
X-Request-Id用于请求跟踪的标识符。Anthropic 兼容路径会在响应的 request-id 标头中返回相同的值。由服务器签发。
X-Region-Code指定调用区域。为 global。
X-Product-Sku (也可通过查询参数 product_sku 指定)直接指定用于计费的 Product SKU。标头优先于查询参数,主要用于语音·Voice 路径。在 Voice 路径中不可省略。audio/speech 和 audio/transcriptions 通过请求正文中的 model 选择 Product。
anthropic-version / anthropic-beta在 Anthropic 兼容路径中原样传递。版本为 2023-06-01。

如果 5xx 错误反复出现,请通过帮助中心和咨询渠道,连同 X-Request-Id 一起告知我们。如果是直接指定的值,则可以立即与客户端记录进行比对。

语言和地区

机器翻译的语言由 clevi/cip-5.5-im 翻译,并会标注为机器翻译。这适用于已发布网站内容包的语言。

137 种语言

推荐

1

东亚

7

东南亚

11

南亚

18

中亚

5

中东和高加索

10

西欧和南欧

17

英国和爱尔兰

4

北欧

10

中欧和巴尔干

14

东欧

5

东非

8

西非和中非

9

南部非洲

8

美洲

5

大洋洲

5