UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

233 lines (232 loc) • 16.9 kB
{ "$schema": "./provider-catalog.schema.json", "id": "ovhcloud", "displayName": "OVHcloud AI Endpoints", "aliases": [], "tier": 2, "wire": { "baseURL": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", "envOverrides": { "apiKey": "OVH_AI_ENDPOINTS_ACCESS_TOKEN" } }, "models": { "default": "gpt-oss-120b", "fallbacks": [ "gpt-oss-20b", "Meta-Llama-3_3-70B-Instruct", "Qwen3.6-27B", "Mistral-Small-3.2-24B-Instruct-2506", "Qwen3.5-9B" ], "defaultContextWindow": 131072, "defaultMaxOutputTokens": 131072, "catalog": { "gpt-oss-120b": { "contextWindow": 131072, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.09, "output": 0.47 }, "vision": false, "status": "production", "description": "Recommended default — OpenAI's open-weight gpt-oss-120b, the exact model OVHcloud's own getting-started guide uses for every code sample (docs.ovhcloud.com/en/guides/public-cloud/ai-machine-learning/ai-endpoints-getting-started, retrieved 2026-09-28), and the most fully documented model on the public catalog card (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/gpt-oss-120b/, retrieved 2026-09-28). That card's own \"Supported Features\" list names exactly Function calling, Reasoning and Streaming; its \"Output Formats\" list names raw_text, json_object and json_schema. The card's Python example builds the request with `Authorization: f\"Bearer {os.getenv('OVH_AI_ENDPOINTS_ACCESS_TOKEN')}\"` against https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/chat/completions, and reads a `reasoning_effort` generation parameter (low/medium/high) plus a `reasoning_content` response field — the basis for capabilities.thinking. No sign-in or API key was used to read any of this; it is all public documentation plus the unauthenticated GET on /v1/models. contextWindow and maxOutputTokens are the live, unauthenticated /v1/models response's own context_length/max_completion_tokens fields for this id (GET run 2026-09-28, HTTP 200). Pricing is that same response's per-token USD pricing (prompt/completion fields) converted to $/MTok; the EUR-denominated marketing catalog card quotes the same model at €0.08 in / €0.4 out per Mtoken, consistent with the API's USD figures at roughly current EUR/USD. No live request of any kind (chat, streaming, tool call) was made against this model — the entry is docs- and roster-verified only; see evidence.liveMatrix (null)." }, "gpt-oss-20b": { "contextWindow": 131072, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.05, "output": 0.18 }, "vision": false, "status": "production", "description": "OpenAI's smaller open-weight gpt-oss-20b. Listed on the public catalog card (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) as a \"Reasoning LLM\" with Function calling: Yes, priced €0.04 in / €0.15 out per Mtoken — consistent with this id's per-token USD pricing on the live, unauthenticated GET /v1/models response (2026-09-28, HTTP 200), which also supplies contextWindow/maxOutputTokens. Not individually probed; roster-verified fallback." }, "Qwen3.6-27B": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.47, "output": 3.19 }, "vision": true, "status": "production", "description": "Qwen3.6-27B, listed on the public catalog card as \"Visual LLM (New)\" with Vision: Yes and Function calling: Yes (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28), priced €0.4 in / €2.7 out per Mtoken there — consistent with this id's per-token USD pricing on the live, unauthenticated GET /v1/models (2026-09-28, HTTP 200), which also supplies contextWindow/maxOutputTokens. Not individually probed; roster-verified fallback. No image-input wire format is documented, so it is not set as models.visionModel." }, "Qwen3.8-27B": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.47, "output": 3.19 }, "vision": true, "status": "production", "description": "Qwen3.8-27B, a newer sibling of Qwen3.6-27B on the same catalog card, same \"Visual LLM (New)\" row: Vision: Yes, Function calling: Yes, €0.4 in / €2.7 out per Mtoken (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — consistent with this id's per-token USD pricing on the live GET /v1/models (2026-09-28). Not individually probed; roster-verified fallback." }, "Qwen3.5-397B-A17B": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.71, "output": 4.25 }, "vision": true, "status": "production", "description": "Qwen3.5-397B-A17B, the largest model in this roster (397B-parameter MoE, ~17B active). Catalog card: \"Visual LLM (New)\", Vision: Yes, Function calling: Yes, €0.6 in / €3.6 out per Mtoken (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — consistent with this id's per-token USD pricing on the live GET /v1/models (2026-09-28). Not individually probed; roster-verified fallback." }, "Qwen3.5-9B": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.12, "output": 0.18 }, "vision": true, "status": "production", "description": "Qwen3.5-9B, the smallest of the Qwen3.x \"Visual LLM (New)\" row: Vision: Yes, Function calling: Yes, €0.1 in / €0.15 out per Mtoken (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — consistent with this id's per-token USD pricing on the live GET /v1/models (2026-09-28). Not individually probed; roster-verified fallback." }, "Meta-Llama-3_3-70B-Instruct": { "contextWindow": 131072, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.74, "output": 0.74 }, "vision": false, "status": "production", "description": "Meta Llama 3.3 70B Instruct, a plain non-reasoning chat model. Catalog card: \"LLM\" category, Vision: No, Function calling: Yes, €0.67 in / €0.67 out per Mtoken (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — consistent with this id's per-token USD pricing on the live GET /v1/models (2026-09-28). Not individually probed; roster-verified fallback." }, "Qwen2.5-VL-72B-Instruct": { "contextWindow": 32768, "maxOutputTokens": 32768, "pricingPerMTok": { "input": 1.01, "output": 1.01 }, "vision": true, "status": "production", "description": "Qwen2.5-VL-72B-Instruct — a dedicated vision-language model (\"VL\"). Catalog card: \"Visual LLM\" category, Vision: Yes, Function calling: No, €0.91 in / €0.91 out per Mtoken (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — the only model in this roster the vendor's own catalog explicitly marks Vision: Yes together with a specific, non-reasoning-family name, so it is set as models.visionModel. No image wire format (base64 vs. URL, content-parts shape) is documented, and no image request was sent (credential-free). Pricing/context/output-cap consistent with the live GET /v1/models (2026-09-28). Not individually probed; roster-verified." }, "Qwen3-Coder-30B-A3B-Instruct": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.07, "output": 0.26 }, "vision": false, "status": "production", "description": "Qwen3-Coder-30B-A3B-Instruct — present on the live, unauthenticated GET /v1/models response (2026-09-28, HTTP 200: id, context_length=262144, max_completion_tokens=262144, USD pricing) but not yet on the public marketing catalog card (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, checked 2026-09-28 — that page lists 20 of the API's 24 live ids; this is one of the 4 not yet listed there). vision:false follows the model family naming (a code-instruct Qwen3 build, no \"VL\"/visual designation) rather than an explicit per-model vision flag; tools support is likewise not individually confirmed for this id — roster-verified only, not capability-probed." }, "Mistral-Small-3.2-24B-Instruct-2506": { "contextWindow": 131072, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.1, "output": 0.31 }, "vision": false, "status": "production", "description": "Mistral Small 3.2 24B Instruct (2506 snapshot) — present on the live, unauthenticated GET /v1/models response (2026-09-28, HTTP 200) but not yet on the public marketing catalog card (checked 2026-09-28, one of the 4 live ids not yet listed there). Mistral's own upstream Small 3.2 release is text-only in its OVH deployment name (no \"VL\"/visual designation); vision:false and tools support are not individually confirmed for this id — roster-verified only." }, "Mistral-7B-Instruct-v0.3": { "contextWindow": 65536, "maxOutputTokens": 65536, "pricingPerMTok": { "input": 0.11, "output": 0.11 }, "vision": false, "status": "production", "description": "Mistral 7B Instruct v0.3 — present on the live, unauthenticated GET /v1/models response (2026-09-28, HTTP 200) but not on the public marketing catalog card (checked 2026-09-28). Small, plain instruct model; vision:false and tools support are not individually confirmed for this id — roster-verified fallback only." }, "Mistral-Nemo-Instruct-2407": { "contextWindow": 65536, "maxOutputTokens": 65536, "pricingPerMTok": { "input": 0.14, "output": 0.14 }, "vision": false, "status": "production", "description": "Mistral Nemo Instruct (2407 snapshot) — present on the live, unauthenticated GET /v1/models response (2026-09-28, HTTP 200) but not on the public marketing catalog card (checked 2026-09-28). Plain instruct model; vision:false and tools support are not individually confirmed for this id — roster-verified fallback only." }, "Qwen3Guard-Gen-8B": { "contextWindow": 32768, "maxOutputTokens": 16384, "pricingPerMTok": { "input": 0, "output": 0 }, "vision": false, "status": "preview", "description": "Qwen3Guard-Gen-8B — a moderation/safety classifier, not a general-purpose chat model. Catalog card: \"LLM Guard (Beta)\" category, priced Free (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28) — the live GET /v1/models response (2026-09-28) shows prompt/completion pricing of 0 for this id, confirming it. status is \"preview\" because the vendor explicitly labels it Beta. Kept out of models.fallbacks/topModels since it answers moderation prompts, not open-ended generation." }, "Qwen3Guard-Gen-0.6B": { "contextWindow": 32768, "maxOutputTokens": 16384, "pricingPerMTok": { "input": 0, "output": 0 }, "vision": false, "status": "preview", "description": "Qwen3Guard-Gen-0.6B — smaller sibling of Qwen3Guard-Gen-8B, same moderation/safety-classifier role. Catalog card: \"LLM Guard (Beta)\" category, priced Free (ovhcloud.com/en/public-cloud/ai-endpoints/catalog/, retrieved 2026-09-28); the live GET /v1/models response (2026-09-28) confirms 0 pricing for this id. status \"preview\" per the vendor's own Beta label. Kept out of models.fallbacks/topModels for the same reason as the 8B variant." } }, "topModels": [ "gpt-oss-120b", "gpt-oss-20b", "Qwen3.6-27B", "Qwen3.8-27B", "Qwen3.5-397B-A17B", "Qwen3.5-9B", "Meta-Llama-3_3-70B-Instruct", "Qwen2.5-VL-72B-Instruct", "Mistral-Small-3.2-24B-Instruct-2506" ], "visionModel": "Qwen2.5-VL-72B-Instruct" }, "capabilities": { "text": true, "streaming": true, "tools": "model-dependent", "toolsWithStreaming": false, "structuredOutput": true, "structuredOutputWithTools": false, "embeddings": false, "thinking": true }, "errorRules": [ { "status": 403, "pattern": "Authentication Failed", "class": "authentication", "message": "Invalid or revoked OVHcloud AI Endpoints access token. Check {apiKeyEnvVar}. Get one at {setupUrl}" } ], "setup": { "url": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/", "apiKeyFormat": null, "billingPolicy": "free-with-card", "instructions": [ "1. Visit: https://www.ovhcloud.com/en/public-cloud/ai-endpoints/ and click Start now, which signs you in to (or creates) an OVHcloud Public Cloud manager account", "2. In the manager, open Public Cloud > your project > AI & Machine Learning > AI Endpoints, and add a payment method to the project — OVHcloud states that projects in Discovery mode (no payment method) cannot use the service", "3. Create an AI Endpoints API access token in that section; it is shown only once, so store it yourself, and note it can be given an expiration date and revoked", "4. Set {apiKeyEnvVar} in your .env file (the vendor's own docs name this exact variable)" ], "description": "OpenAI-compatible endpoint at https://oai.endpoints.kepler.ai.cloud.ovh.net/v1, documented as \"compatible with the OpenAI specifications\" (docs.ovhcloud.com/en/guides/public-cloud/ai-machine-learning/ai-endpoints-getting-started). Several models (both Qwen3Guard classifiers, stable-diffusion-xl, the four NVIDIA Riva TTS voices) are billed at €0/free, but the account itself requires a payment method on the Public Cloud project before any API key can be used — OVHcloud's own docs: \"projects in Discovery mode (without a payment method) cannot use the service.\" A very limited anonymous tier also exists (2 requests/minute per IP per model, undocumented auth shape) but is not what {apiKeyEnvVar} configures. Authenticated rate limit is documented as 400 requests/minute per project per model; over that returns HTTP 429. This catalog entry covers only the chat-completions models; OVHcloud AI Endpoints also serves speech-to-text (Whisper), text-to-speech (NVIDIA Riva), image generation (Stable Diffusion XL) and embeddings (bge-m3, bge-multilingual-gemma2, Qwen3-Embedding-8B) models on the same platform, which are out of scope for this Tier-2 chat-completions integration." }, "evidence": { "rosterVerified": { "date": "2026-09-28", "method": "unauthenticated GET https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models — 24 models; credential-free, no key used", "status": 200 }, "liveMatrix": null, "addedInPR": "https://github.com/juspay/neurolink/pull/1848" } }