Documentation de l'API QNP

Proxy compatible OpenAI avec repli configurable par clé entre les fournisseurs.

Introduction

QNP est une passerelle API compatible OpenAI. Pointez n'importe quel SDK OpenAI vers notre URL de base et votre code existant route à travers Anthropic, OpenAI, Google, Mistral, Groq, et plus — avec basculement automatique.

  • Repli configurable — définissez l'ordre des fournisseurs par clé.
  • Compatible avec le SDK OpenAI — remplacement direct, sans modification du code.
  • BYOK ou crédits de plateforme — apportez vos propres clés, ou payez au fur et à mesure.
  • Fournisseurs pris en charge — OpenAI, Anthropic, Google, Mistral, Groq, et plus encore.
  • Utilisation, facturation et surveillance unifiées.

URL de base de production : {url}

Pour le chat, les noms de modèles qnp ou qnp/auto correspondent au premier modèle de votre chaîne de repli. Sinon, QNP utilise une valeur par défaut basée sur l'intention. L'ordre de votre repli s'applique toujours.

Guide de démarrage rapide

1

Créer un compte

Inscrivez-vous sur qnp.ai/login avec Google, Apple, Passkey ou lien magique par email. Vous bénéficierez d'un niveau gratuit avec 50 requêtes par jour.

2

Obtenez votre clé API

Allez sur Tableau de bord → Clés API et créez une nouvelle clé. Configurez votre chaîne de fournisseurs. Copiez la clé — elle commence par qnp- et elle n'est affichée qu'une seule fois.

3

Effectuez votre première requête

Utilisez n'importe quel SDK compatible OpenAI ou cURL. Changez simplement l'URL de base et la clé API (voir ci-dessous).

4

Surveiller l'utilisation

Consultez les journaux des requêtes, les coûts et la latence sur la page Tableau de bord → Journaux. Exportez les données en CSV pour analyse.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'

Authentification

Toutes les requêtes API nécessitent une authentification via votre clé QNP. Deux formats d'en-tête sont pris en charge :

Authorization: Bearer YOUR_KEY
# or
X-API-Key: YOUR_KEY

Gestion des clés

  • Les clés sont créées dans le tableau de bord et affichées une seule fois lors de la création.
  • Chaque clé a sa propre chaîne de fournisseurs — choisissez les fournisseurs parmi lesquels basculer.
  • Les clés peuvent être limitées aux IPs autorisées, référents, modèles et budgets quotidiens.
  • Faites pivoter les clés sans interruption — l'ancienne clé reste valide pendant une période de grâce.
  • Révoquez instantanément les clés compromises — l'ancienne clé retourne 401 lors de l'appel suivant.
  • Offre gratuite : jusqu'à 5 clés actives, 1 000 requêtes/jour.

Portée des clés

  • Chaîne de fournisseurs — quels fournisseurs essayer, et dans quel ordre.
  • IPs autorisées — limitez l'utilisation de la clé à des adresses IP ou CIDR spécifiques.
  • Référents autorisés — limitez l'utilisation de la clé à des origines spécifiques.
  • Permissions — chat, embeddings, images ou audio par clé.
  • Budget — définissez les limites de dépenses quotidiennes en USD.
  • Limites de taux — plafonds RPM/TPM personnalisés par clé.

Configuration de repli

Par clé API, vous définissez une chaîne de fournisseurs. QNP essaie chacun à tour de rôle jusqu'à ce que l'un renvoie une réponse réussie.

Exemple : OpenAI (principal) → Anthropic (repli 1) → Groq (repli 2). Si OpenAI renvoie 5xx, le trafic passe à Anthropic.

Configurez le repli dans le tableau de bord sous Clés → [votre clé] → Routage.

Sans configuration de repli, la clé utilise les crédits de la plateforme — facturés sur votre compte.

Complétions de chat

POST/v1/chat/completions

Point de terminaison de chat compatible OpenAI. Prend en charge le streaming, les appels de fonctions et les entrées visuelles.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'
Python (SDK OpenAI)
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Node.js (SDK OpenAI)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

Embeddings

POST/v1/embeddings

Créez des embeddings vectoriels pour le texte — utile pour la recherche, le regroupement et le RAG.

cURL
curl -X POST "https://qnp.ai/api/v1/embeddings" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"text-embedding-3-small","input":"The quick brown fox"}'
Python
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="The quick brown fox"
)
print(response.data[0].embedding[:5])

Images

POST/v1/images/generations

Générez des images via DALL-E et autres modèles d'image.

Modèles

GET/v1/models

Répertorier les modèles disponibles pour votre clé API.

cURL
curl "https://qnp.ai/api/v1/models" \
  -H "Authorization: Bearer YOUR_KEY"

Streaming

QNP prend en charge le streaming par Server-Sent Events (SSE) pour les complétions de chat. Définissez "stream": true dans le corps de votre requête. La réponse est un flux d'événements data: au format OpenAI.

Chaque événement SSE contient un fragment JSON avec le contenu delta. Le flux se termine par data: [DONE].

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","stream":true,"messages":[{"role":"user","content":"Hello!"}]}'
Python
stream = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Catalogue de modèles

Chargement du catalogue de modèles en direct…

Limites de débit

Les limites de débit sont appliquées par clé API. Les plafonds par défaut varient selon le niveau :

NiveauRequêtes par jourRPM (par défaut)Clés API
Gratuit50 RPD10 RPM5
ProIllimitéIllimitéIllimité

Les limites de débit personnalisées par clé (RPM, TPM) sont configurables dans le tableau de bord.

En cas de limitation de débit, l'API retourne 429 Too Many Requests avec un en-tête Retry-After.

Codes d'erreur

Errors follow OpenAI format: { error: { message, type, code } }

CodeSignificationCe qu'il faut faire
400Mauvaise requêteVérifiez le format du corps de votre requête et les champs requis.
401Non autoriséVérifiez que votre clé API est valide et incluse dans l'en-tête.
402Crédits insuffisantsRechargez vos crédits dans le tableau de bord ou passez à Pro.
403InterditLa clé n'a pas l'autorisation pour ce point de terminaison, ou l'IP/référent est bloqué.
404Non trouvéVérifiez l'URL du point de terminaison et le nom du modèle.
429Limite de tauxAttendez et réessayez. Consultez l'en-tête Retry-After. Passez à un niveau supérieur pour des limites plus élevées.
500Erreur interne du serveurRéessayez la demande. Si le problème persiste, contactez le support.
502Passerelle incorrecteErreur du fournisseur en amont. Votre chaîne de repli réessayera automatiquement.
503Service indisponibleFournisseur temporairement indisponible. Le routage de repli gère cette situation.

Exemples SDK

Utilisez n'importe quel SDK compatible OpenAI. Changez simplement l'URL de base et votre clé QNP.

Python

pip install openai
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Node.js

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

LangChain

Python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY",
    model="openai/gpt-4o-mini"  # routes to your fallback chain
)
response = llm.invoke("Hello!")
print(response.content)

Configuration de Cline

Cline est un assistant de codage alimenté par l'IA pour VS Code. QNP fonctionne comme fournisseur d'API de Cline.

Étapes

  1. Ouvrez les paramètres de Cline (cliquez sur l'icône d'engrenage).
  2. Définissez Fournisseur d'API sur Compatible OpenAI.
  3. URL de base : {url}.
  4. Clé API : Votre clé QNP (commence par qnp-).
  5. Modèle : Utilisez {model} (ou tout autre modèle pris en charge). Passez qnp/auto si vous souhaitez que QNP choisisse dans votre chaîne de repli.

Conseil : configurez votre chaîne de fournisseurs de clés API dans Tableau de bord → Clés API. Le modèle qnp/auto utilise le premier modèle de cette chaîne ; s'il échoue, le suivant est automatiquement essayé.

Dépannage

  • 400 invalid_request_error : Assurez-vous que votre clé dispose d'au moins un fournisseur dans sa chaîne de repli. Ajoutez Anthropic ou OpenAI dans Tableau de bord → Clés → Routage.
  • Clé API invalide : Confirmez que la clé commence par qnp- et est active.
  • URL de base : Doit se terminer par /v1 (sans slash final).

Script de configuration

Le script d'installation détecte et configure automatiquement OpenClaw, Claude Code et Hermes Agent. Utilisez QNP comme fournisseur de modèle pour une solution de repli unifiée et BYOK.

Le script d'installation vous demandera de manière interactive votre clé API et votre URL de base.

bash
curl -fsSL https://qnp.ai/setup.sh | bash

Ce que fait le script

  • Détecte les outils installés (OpenClaw, Claude Code, Hermes Agent) et configure QNP comme fournisseur pour chacun.
  • Définit input: ["text","image","audio","video"] pour tous les modèles.
  • Crée une sauvegarde avant les modifications.