Skip to main content

OVHcloud AI Endpoints

Connect AISIX AI Gateway to OVHcloud AI Endpoints so applications can call OVHcloud-hosted models through an AISIX caller key.

The OVHcloud OpenAI-compatible endpoint uses bearer authentication. AISIX discovers it through the ovhcloud community catalog provider and uses the openai adapter.

SettingValue used by AISIX
Catalog provider IDovhcloud
API basehttps://oai.endpoints.kepler.ai.cloud.ovh.net/v1
Example upstream modelMeta-Llama-3_3-70B-Instruct
AuthenticationBearer access token

Prerequisites

Prepare:

  • An AISIX Cloud environment with an attached gateway.
  • An OVHcloud AI Endpoints access token.
  • Access to the selected model.
  • curl and jq.

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 OVHcloud Upstream

Create a Provider Key

export OVHCLOUD_API_KEY="YOUR_OVHCLOUD_ACCESS_TOKEN"

PROVIDER_KEY_ID=$(
curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "ovhcloud-prod",
"provider": "ovhcloud",
"api_key": "'"${OVHCLOUD_API_KEY}"'",
"api_base": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -er '.provider_key.id'
)

echo "$PROVIDER_KEY_ID"

Use the catalog ID ovhcloud and omit adapter. AISIX derives the OpenAI wire format and bearer authentication.

The API base is the shared OpenAI-compatible root documented by OVHcloud. It includes /v1; AISIX adds /chat/completions.

Create a Model

Create an alias with the exact OVHcloud 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": "ovhcloud-llama-prod",
"model_name": "Meta-Llama-3_3-70B-Instruct",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -er '.model.id'
)

echo "$MODEL_ID"

OVHcloud model IDs do not necessarily match the publisher's original repository ID. Copy the value shown by OVHcloud, including underscores, hyphens, and casing.

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": "ovhcloud-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": "ovhcloud-llama-prod",
"messages": [
{
"role": "user",
"content": "Say hello from OVHcloud AI Endpoints."
}
]
}'

AISIX sends the OVHcloud model ID to the OpenAI-compatible chat endpoint with bearer authentication.

Endpoint Coverage

Chat completions is supported. AISIX can bridge compatible Responses and Messages requests through the chat adapter. Embeddings require an embedding model and OpenAI-compatible embeddings route exposed by OVHcloud.

Image generation, video generation, and rerank do not accept the ovhcloud provider value. See Provider Compatibility.

Troubleshooting

SymptomCheck
Upstream 401 or 403Confirm the access token and project entitlement.
Upstream 404Keep /v1 in api_base and copy the OVHcloud model ID exactly.
Model not foundCheck underscores, hyphens, and version segments in model_name.
Provider key creation returns 400Use provider: "ovhcloud" and omit adapter.

For routing this alias alongside another European endpoint, see Routing and Failover.