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.caAcheminement 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.
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.
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-5Notre 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-1Niveau de raisonnement premium. Réflexion approfondie pour les problèmes complexes à plusieurs étapes.
Raisonnement avancé, flux agentiques, analyse complexe
Toujours actif
ossington-4Grand modèle multimodal, haute capacité
Raisonnement complexe, analyse juridique, révision de documents
Toujours actif
ossington-4-1Raisonnement premium. Vision, outils, et solide travail bilingue (FR/EN).
Raisonnement complexe, analyse juridique, révision de documents
Toujours actif
tofino-2.5Petit 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
/v1/chat/completionsCré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
| Champ | Type | Requis | Description |
|---|---|---|---|
| model | string | Oui | Identifiant du modèle (voir Modèles ci-dessus) |
| messages | array | Oui | Tableau d'objets message (texte, images ou fichiers PDF, voir plus bas) |
| stream | boolean | Non | Réponse en continu via SSE. Par défaut : false |
| stream_options | object | Non | {"include_usage": true} ajoute un dernier fragment usage avant [DONE] |
| temperature | number | Non | Température d'échantillonnage (0,0–2,0) |
| max_tokens | number | Non | Nombre maximal de jetons à générer (jusqu'à 32 768) |
| top_p | number | Non | Seuil d'échantillonnage nucleus |
| stop | string | array | Non | Sé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.
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..."
}}
]
}]
}'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 -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
{
"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).
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.
/v1/modelsRetourne la liste de tous les modèles disponibles.
curl https://api.augureai.ca/v1/models \
-H "Authorization: Bearer VOTRE_CLE_API"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.
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)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.
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}| Statut | Signification |
|---|---|
| 401 | Clé API manquante ou invalide |
| 400 | Requête mal formée ou champs requis manquants |
| 404 | Modèle ou point de terminaison inconnu |
| 413 | Corps de la requête supérieur à 35 Mo |
| 429 | Quota de jetons dépassé pour cette clé API |
| 502 | Erreur de traitement en amont — réessayez sous peu |