Novita AI
Connect AISIX AI Gateway to the Novita AI LLM API so applications can call Novita-hosted models with an AISIX caller key and stable model alias.
The LLM API from Novita is OpenAI-compatible and uses bearer authentication. AISIX discovers it through the novita-ai community catalog provider.
| Setting | Value used by AISIX |
|---|---|
| Catalog provider ID | novita-ai |
| API base | https://api.novita.ai/openai/v1 |
| Example upstream model | deepseek/deepseek-v3.2 |
| Authentication | Bearer API key |
Prerequisites
Prepare:
- An AISIX Cloud environment with an attached gateway.
- A Novita AI API key.
curlandjq.
Export the AISIX connection details:
export AISIX_CP="http://localhost:8080/api"
export AISIX_TOKEN="aisix_pat_YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
export AISIX_PROXY="http://127.0.0.1:3000"
Configure the Novita AI Upstream
Create a Provider Key
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"
The provider ID includes the -ai suffix. novita is not the AISIX catalog ID.
The API base also includes /openai/v1. AISIX appends /chat/completions, producing https://api.novita.ai/openai/v1/chat/completions. Using the bare host would send traffic to a route Novita does not document.
AISIX derives the openai adapter for this catalog provider. Omit adapter from the request.
Create a Model
Create an alias with Novita's publisher-namespaced model 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"
Model IDs and availability change as the catalog from Novita is updated. Copy the current ID, including its publisher prefix and casing, from the Novita model list.
Create a Caller 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"
Verify the Provider Connection
curl -sS -X POST "$AISIX_PROXY/v1/chat/completions" \
-H "Authorization: Bearer $AISIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "novita-deepseek-prod",
"messages": [
{
"role": "user",
"content": "Say hello from Novita AI."
}
]
}'
AISIX forwards deepseek/deepseek-v3.2 to the Novita OpenAI-compatible chat endpoint with the Novita API key.
Endpoint Coverage
Chat completions is supported. AISIX can bridge compatible Responses and Messages requests through the same adapter. Embeddings require a Novita embedding model served on the configured OpenAI-compatible API root.
Image generation, video generation, and rerank have provider-specific allowlists and do not accept novita-ai. Use Provider Passthrough only for Novita-native routes that are beneath the configured API base.
Troubleshooting
| Symptom | Check |
|---|---|
| Upstream authentication error | Confirm NOVITA_API_KEY is active. |
Upstream 404 | Keep /openai/v1 in api_base. |
| Model not found | Copy the complete publisher-namespaced model ID from Novita. |
Provider key creation returns 400 | Use provider: "novita-ai" and omit adapter. |
For provider-specific parameter or response mapping, see Provider-Specific Overrides.