DeepInfra
DeepInfra 为多个发布方的开放权重模型提供托管推理服务。应用通过稳定的 AISIX 别名调用这些模型,而不会获得上游 API Token。一个服务提供方密钥既可使用 DeepInfra 的 OpenAI 兼容根地址处理 Chat,也可使用其同级的 Anthropic 兼容根地址处理原生 Messages 和 Count Tokens。
前提条件
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装,或采用开源 AISIX 网关快速入门中的 Docker 部署方式。配置网关以加载声明式资源文件。
- 从 DeepInfra 控制台获取的 DeepInfra API Token。
curl和jq。
使用 AISIX Cloud 配置
导出 AISIX Cloud 连接信息:
# AISIX_CP 是 Admin API 基础 URL;应包含 /api,且不含尾部斜杠
# 本地私有化部署快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CLOUD_ADMIN_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
为以 DeepInfra 为后端的 Chat Completions、Messages 和 Count Tokens 创建服务提供方密钥、模型别名和调用方 API Key。
DeepInfra 是一个提供 OpenAI 和 Anthropic 兼容 API 的社区目录服务提供方。AISIX 对主要 API 根地址使用 openai 适配器,并在同一个服务提供方密钥上单独声明原生 Messages 协议面。AISIX 不提供经过维护的基础 URL,也不提供服务提供方特定的请求和响应重写规则。
对于 DeepInfra,AISIX Cloud Admin API 会返回 community_badge: true。控制台将其归入所有服务提供方(社区),并将其传输协议兼容性标记为推定兼容,而非已验证兼容。
创建服务提供方密钥
创建用于存储 DeepInfra 凭证和 API 根路径的服务提供方密钥:
# 替换为你的值
export DEEPINFRA_API_KEY="YOUR_PROVIDER_API_KEY"
PROVIDER_KEY_ID=$(curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "deepinfra-prod",
"provider": "deepinfra",
"api_key": "'"${DEEPINFRA_API_KEY}"'",
"api_base": "https://api.deepinfra.com/v1",
"apis": {
"messages": { "base": "https://api.deepinfra.com/anthropic" }
},
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -r '.provider_key.id')
echo "$PROVIDER_KEY_ID"
❶ provider 为 deepinfra。AISIX Cloud Admin API 会根据目录条目推导适配器;adapter 字段仅适用于 BYO 服务提供方密钥,在目录服务提供方密钥中发送该字段会返回 400 错误。对于 deepinfra,推导出的适配器为 openai。
❷ api_key 存储 DeepInfra API Token。DeepInfra 使用 HTTP Bearer 身份认证来验证 OpenAI 兼 容接口,这正是 openai 适配器已采用的认证方式。该值遵循服务提供方密钥中的凭证处理方式。
❸ 对 DeepInfra 而言,api_base 是必填项。models.dev 的 deepinfra 条目没有发布 api 字段,因此 AISIX Cloud Admin API 没有可回退使用的缓存默认值。省略 api_base 会返回 400 错误,说明 models.dev 未发布该服务提供方的默认基础 URL。
❹ apis.messages 在同级 Base 上声明 DeepInfra 完整的 Anthropic 兼容协议面。Messages 和 Count Tokens 都使用此 Base 和同一凭证。
该命令将返回的服务提供方密钥 ID 保存到 PROVIDER_KEY_ID。
为什么基础 URL 在 /v1 处结束
DeepInfra 的 OpenAI SDK 示例将 base_url 设置为 https://api.deepinfra.com/v1/openai。DeepInfra 还在 /v1 下直接提供相同 API,包括 /v1/chat/completions、/v1/embeddings、/v1/images/generations 和 /v1/audio/*。
AISIX 会把端点路径追加到 api_base,因此直接使用 https://api.deepinfra.com/v1 根地址更实用。一个服务提供方密钥即可提供 Chat、原生 Messages、Count Tokens、Embedding 和音频别名,透传路由还可访问兼容图片端点和 DeepInfra 原生路由。
还需了解以下两种相 关行为:
- 如果粘贴完整的直接端点 URL,AISIX 会先移除
/chat/completions等已知端点后缀及其末尾斜杠,再构建上游 URL。因此,将api_base设置为https://api.deepinfra.com/v1/chat/completions仍可正常工作,但建议使用根路径形式以保持值清晰易读。 - AISIX 不会为非 OpenAI 厂商补充缺失的路径段。将
api_base设置为裸主机https://api.deepinfra.com会生成上游 URLhttps://api.deepinfra.com/chat/completions,而 DeepInfra 并不提供该路径。请使用 DeepInfra 文档中的根路径,不要依赖 AISIX 修复较短的形式。将api_base留空也无法解决问题:对于非 OpenAI 服务提供方,网关不会回退到 OpenAI 主机,而是返回上游配置错误,以免将 DeepInfra Token 泄露给其他厂商。
创建模型
DeepInfra 模型 ID 以权重发布方作为命名空间,格式为 <publisher>/<Model-Name>,与相同权重对应的 Hugging Face 仓库 ID 一致。其大小写并不统一,发布方路径段使用的是 Hub 组织名称,而非厂商品牌名称——例如,GLM 模型发布在 zai-org 下,而不是 zhipuai。请从 DeepInfra 模型目录逐字复制 ID,不要手动重新输入。
当前可用的 ID 包括:
| 模型 ID | 说明 |
|---|---|
deepseek-ai/DeepSeek-V3.2 | 推理模型;在 reasoning_content 中返回推理内容。 |
openai/gpt-oss-120b | 开放权重模 型;reasoning_effort 接受 low、medium 和 high。 |
meta-llama/Llama-3.3-70B-Instruct-Turbo | 非推理指令模型。 |
创建调用方将在请求中发送的模型别名:
MODEL_ID=$(curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/models" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "deepinfra-deepseek-prod",
"model_name": "deepseek-ai/DeepSeek-V3.2",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -r '.model.id')
echo "$MODEL_ID"
❶ display_name 是调用方通过 model 发送的别名。
❷ model_name 是完整的 DeepInfra 模型 ID,包含发布方路径段。上游会拒绝 DeepSeek-V3.2 这类不带命名空间的标识符。
❸ provider_key_id 将该别名关联到 DeepInfra 服务提供方密钥。