Novita AI
Novita AI 为语言模型目录提供托管推理服务。应用通过稳定的 AISIX 别名选择这些模型,并使用网关颁发的调用方密钥进行身份认证。
准备工作
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Cloud,需要一个已关联网关的环境和具备写入权限的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装,或使用开源 AISIX 网关快速入门中的 Docker 环境。配置网关以加载声明式资源文件。
- 一个 Novita AI API Key。
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"
Novita AI 是提供 OpenAI 兼容 API 的社区目录服务提供方。AISIX 通过 openai 适配器连接,并使用 Bearer Token 对上游请求进行身份认证。
创建服务提供方密钥
export NOVITA_API_KEY="YOUR_NOVITA_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": "novita-prod",
"provider": "novita-ai",
"api_key": "'"${NOVITA_API_KEY}"'",
"api_base": "https://api.novita.ai/openai/v1",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -er '.provider_key.id'
)
echo "$PROVIDER_KEY_ID"
服务提供方 ID 包含 -ai 后缀。novita 不是 AISIX 目录 ID。
API Base 必须包含 /openai。本指南使用 Novita 文档中的 /openai/v1 根地址,AISIX 会追加 /chat/completions,生成 https://api.novita.ai/openai/v1/chat/completions。Novita 也接受不带版本路径段的 /openai,这是当前同步目录的值。使用裸主机会将流量发送到 Novita 未为 LLM 推理提供的路由。
AISIX 会为此目录服务提供方派生 openai 适配器。请从请求中省略 adapter。
创建模型
使用包含发布方命名空间的 Novita 模型 ID 创建别名:
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": "novita-deepseek-prod",
"model_name": "deepseek/deepseek-v3.2",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -er '.model.id'
)
echo "$MODEL_ID"
模型 ID 和可用性会随 Novita 目录更新而变化。请从 Novita 模型列表复制当前 ID,并保留其发布方前缀和大小写。
创建调用方 API Key
AISIX_API_KEY=$(
curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/api_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "novita-caller",
"allowed_models": ["'"${MODEL_ID}"'"]
}' | jq -er '.plaintext'
)
echo "$AISIX_API_KEY"