Documentation pour développeurs

API Augure

API de complétion de chat compatible OpenAI sur une infrastructure canadienne souveraine. Aucune exposition américaine. Aucun CLOUD Act.

URL de base : https://api.augureai.ca
🍁

Acheminement et résidence des données

Toutes les requêtes API transitent par notre passerelle à Beauharnois, au Québec. L’inférence s’exécute sur une infrastructure souveraine sans société mère américaine dans la chaîne — aucune donnée ne touche une infrastructure américaine à aucun moment. Ossington 4 fonctionne sur une infrastructure souveraine auditée. Les requêtes sont chiffrées en transit (TLS 1.2+), jamais journalisées par Augure et jamais utilisées pour l’entraînement de modèles.

Passerelle canadienneInférence souveraineAucune exposition USAucune journalisation

Authentification

Tous les points de terminaison nécessitent un jeton Bearer. Incluez votre clé API dans l’en-tête Authorization de chaque requête.

Exemple
curl https://api.augureai.ca/v1/models \
  -H "Authorization: Bearer VOTRE_CLE_API"

Obtenir une clé : les clés API sont émises via notre processus de candidature. Obtenir l’accès pour commencer.

Modèles

Cinq modèles sont disponibles, optimisés pour différentes charges de travail, ainsi qu'un alias auto qui achemine chaque requête vers le meilleur modèle disponible.

ossington-5

Notre plus récent modèle de raisonnement phare. Le plus rapide du catalogue, excellent en code.

Programmation agentique, raisonnement complexe, sorties structurées

Toujours actif

rosedale-1

Niveau de raisonnement premium. Réflexion approfondie pour les problèmes complexes à plusieurs étapes.

Raisonnement avancé, flux agentiques, analyse complexe

Toujours actif

ossington-4

Grand modèle multimodal, haute capacité

Raisonnement complexe, analyse juridique, révision de documents

Toujours actif

ossington-4-1

Raisonnement premium. Vision, outils, et solide travail bilingue (FR/EN).

Raisonnement complexe, analyse juridique, révision de documents

Toujours actif

tofino-2.5

Petit modèle rapide et efficace

Chat, résumés, tâches rapides

24/7

Compatibilité OpenAI : les alias gpt-4, gpt-4o, gpt-4o-mini et gpt-3.5-turbo sont pris en charge pour une compatibilité directe avec les bibliothèques client OpenAI. Ils correspondent respectivement à ossington-4 et tofino-2.5.

Points de terminaison

POST/v1/chat/completions

Créer une complétion de chat. Accepte le même format de requête que le point de terminaison de complétion de chat d’OpenAI.

Paramètres

ChampTypeRequisDescription
modelstringOuiIdentifiant du modèle (voir Modèles ci-dessus)
messagesarrayOuiTableau d'objets message (texte, images ou fichiers PDF, voir plus bas)
streambooleanNonRéponse en continu via SSE. Par défaut : false
stream_optionsobjectNon{"include_usage": true} ajoute un dernier fragment usage avant [DONE]
temperaturenumberNonTempérature d'échantillonnage (0,0–2,0)
max_tokensnumberNonNombre maximal de jetons à générer (jusqu'à 32 768)
top_pnumberNonSeuil d'échantillonnage nucleus
stopstring | arrayNonSéquence(s) d'arrêt

Chaque message du tableau messages possède un role ("system", "user" ou "assistant") et un content de type chaîne.

Images et documents

content peut aussi être un tableau de parties. En plus des parties text, un message utilisateur peut contenir des parties image_url(PNG, JPEG, WebP ou GIF en data URL base64) et des parties file(un PDF en data URL base64). Les PDF sont lus par la passerelle : la couche texte est extraite directement, et les documents numérisés passent automatiquement par la reconnaissance de caractères (OCR). Envoyez le PDF lui-même plutôt qu’une image de ses pages; vous conservez le texte exact, et ça fonctionne avec tous les modèles.

Pièce jointe PDF
curl -X POST https://api.augureai.ca/v1/chat/completions \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ossington-5",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Extrais le numéro de facture, la date, le fournisseur et le total en JSON."},
        {"type": "file", "file": {
          "filename": "facture-2041.pdf",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQK..."
        }}
      ]
    }]
  }'
Python
import base64
from openai import OpenAI

client = OpenAI(api_key="VOTRE_CLE_API", base_url="https://api.augureai.ca/v1")
pdf = base64.b64encode(open("facture-2041.pdf", "rb").read()).decode()

response = client.chat.completions.create(
    model="ossington-5",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Extrais le numéro de facture, la date, le fournisseur et le total en JSON."},
            {"type": "file", "file": {
                "filename": "facture-2041.pdf",
                "file_data": f"data:application/pdf;base64,{pdf}",
            }},
        ],
    }],
)
print(response.choices[0].message.content)

Chaque PDF peut faire jusqu’à 25 Mo et 200 pages, dans la limite de 35 Mo par requête. Une partie file accepte aussi les chiffriers (.xlsx ou .csv en data URL, 100 premières lignes de chaque feuille). Les images sont lues par notre moteur de vision et transmises au modèle sous forme de texte; ajoutez "augure_ocr": true à une partie image_url pour obtenir une transcription OCR mot à mot, sans description. La passerelle ne conserve aucune copie du fichier une fois la requête terminée.

Exemple de requête

curl
curl -X POST https://api.augureai.ca/v1/chat/completions \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ossington-5",
    "messages": [
      {"role": "system", "content": "Tu es un assistant utile."},
      {"role": "user", "content": "Qu'est-ce que le Code civil du Québec?"}
    ]
  }'

Exemple de réponse

Réponse
{
  "id": "chatcmpl-a9adf17e-5ff3-4804-b01e-f7cbd30ae996",
  "object": "chat.completion",
  "created": 1771286577,
  "model": "ossington-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Le Code civil du Québec (CCQ) est..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 150,
    "total_tokens": 174
  },
  "_augure": {
    "gateway_region": "ca-montreal-1",
    "inference_region": "augure-cloud",
    "request_id": "a9adf17e-5ff3-4804-b01e-f7cbd30ae996"
  }
}

Streaming

Définissez "stream": true pour recevoir des événements Server-Sent Events. Chaque événement est un fragment JSON contenant un objet delta avec le contenu incrémental. Le flux se termine par data: [DONE]. Ajoutez "stream_options": {"include_usage": true} pour recevoir, juste avant, un dernier fragment contenant l’objet usage(avec un tableau choices vide).

Requête en streaming
curl -N -X POST https://api.augureai.ca/v1/chat/completions \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tofino-2.5",
    "messages": [{"role": "user", "content": "Bonjour"}],
    "stream": true
  }'

Consommation et coût

Chaque réponse contient un objet usage avec prompt_tokens, completion_tokens et total_tokens; multipliez par les tarifs de chaque modèle ci-dessus pour connaître le coût d’un appel. Votre tableau de bord développeur présente les mêmes chiffres par modèle, par jour et par clé, avec le coût en dollars canadiens aux tarifs publiés. Le texte extrait d’un PDF joint compte dans les jetons d’entrée comme n’importe quel autre contenu.

GET/v1/models

Retourne la liste de tous les modèles disponibles.

curl
curl https://api.augureai.ca/v1/models \
  -H "Authorization: Bearer VOTRE_CLE_API"

Réponse

Réponse
{
  "object": "list",
  "data": [
    { "id": "auto",          "object": "model", "owned_by": "augure" },
    { "id": "rosedale-1",    "object": "model", "owned_by": "augure" },
    { "id": "ossington-4-1", "object": "model", "owned_by": "augure" },
    { "id": "ossington-5",   "object": "model", "owned_by": "augure" },
    { "id": "ossington-4",   "object": "model", "owned_by": "augure" },
    { "id": "tofino-2.5",    "object": "model", "owned_by": "augure" }
  ]
}

Bibliothèques client

Utilisez n’importe quel SDK compatible OpenAI. Pointez-le simplement vers https://api.augureai.ca/v1 comme URL de base.

Python
from openai import OpenAI

client = OpenAI(
    api_key="VOTRE_CLE_API",
    base_url="https://api.augureai.ca/v1"
)

response = client.chat.completions.create(
    model="ossington-5",
    messages=[
        {"role": "user", "content": "Explique la Loi sur la protection des renseignements personnels du Québec"}
    ]
)
print(response.choices[0].message.content)
JavaScript / TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "VOTRE_CLE_API",
  baseURL: "https://api.augureai.ca/v1",
});

const response = await client.chat.completions.create({
  model: "tofino-2.5",
  messages: [{ role: "user", content: "Résume la LPRPDE" }],
});
console.log(response.choices[0].message.content);

Limites

Corps de la requête

35 Mo max

Pièce jointe PDF

25 Mo / 200 pages

Messages par requête

256 max

Jetons de sortie max

32 768

Délai d'expiration

300 secondes

Les limites de débit sont appliquées par clé API; le plafond de dépense quotidien s’applique à l’ensemble du compte. Contactez-nous si vous avez besoin d’un débit plus élevé pour vos charges de production.

Erreurs

Toutes les erreurs retournent un objet JSON avec un champ error, conforme au format d’erreur OpenAI.

Réponse d'erreur
{
  "error": {
    "message": "Invalid API key provided",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_api_key"
  }
}
StatutSignification
401Clé API manquante ou invalide
400Requête mal formée ou champs requis manquants
404Modèle ou point de terminaison inconnu
413Corps de la requête supérieur à 35 Mo
429Quota de jetons dépassé pour cette clé API
502Erreur de traitement en amont — réessayez sous peu

Prêt à intégrer?

Obtenez votre clé API et commencez à développer avec Augure.

Obtenir l’accès à l’API