Aller au contenu principal

Guide Vision (entrée d'images)

Vous pouvez transmettre des images dans messages sur POST /v1/chat/completions et les faire analyser (compatible OpenAI). Il n'y a pas d'endpoint supplémentaire : une clé API avec le scope llm fonctionne telle quelle.

Quel scope vous faut-il​

Les clés API d'api.aicu.ai portent des scopes (groupes de permissions), et chaque famille d'endpoints en exige un différent.

ScopeCe qu'il débloqueNécessaire pour Vision ?
llm/v1/chat/completions (entrée texte comme image)✅
images/v1/images/* (génération d'images)Non
tts/v1/tts/* et /v1/audio/transcriptions (synthèse vocale, transcription)Non
  • Vision consiste simplement à « transmettre une image à une chat completion » ; le scope llm seul suffit donc. images est le scope pour créer des images
  • Les clés émises depuis le tableau de bord ont llm / tts / images par défaut
  • Si une clé émise par votre entreprise (moindre privilège) renvoie 403, le scope manque. Demandez à la personne qui l'a émise de l'ajouter

Appel (curl, URL d'image)​

curl -X POST https://api.aicu.ai/v1/chat/completions \
-H "Authorization: Bearer $AICU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}],
"max_tokens": 300
}'

L'astuce consiste à faire de content un tableau au lieu d'une chaîne, et à y mêler des parties de type: "image_url". messages est transmis tel quel au fournisseur ; la spécification Vision d'OpenAI fonctionne donc exactement comme documentée.

Appel (Python, image locale en base64)​

import base64, os
from openai import OpenAI

client = OpenAI(
api_key=os.environ["AICU_API_KEY"],
base_url="https://api.aicu.ai/v1",
)

b64 = base64.b64encode(open("frame.jpg", "rb").read()).decode()
res = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's the highlight of this image? One line."},
{"type": "image_url", "image_url": {
"url": f"data:image/jpeg;base64,{b64}",
"detail": "low",
}},
],
}],
max_tokens=300,
)
print(res.choices[0].message.content)
  • detail : low (basse résolution, faible coût) / high (découpage en tuiles, grande précision) / auto. Utilisez low pour analyser un grand nombre d'images

Modèles pris en charge et tarifs​

Mesuré le 2026-09-22 en envoyant la même petite image à chaque modèle et en lui demandant ce qu'elle montre.

ModèleImagesRemarque
gpt-4o-mini✅Le moyen le moins cher de lire une image
gpt-4o✅
gpt-5.6-luna✅Le plus léger de la famille 5.6
gpt-5.6-terra✅Code et compréhension d'images
gpt-5.6-sol✅Idem, avec le raisonnement le plus poussé
gpt-6-astra✅
kimi-k2.7-codeAperçuDéclaré multimodal, mais n'a renvoyé aucune réponse lors de ce test

C'est parce que la famille gpt-5.6 lit les images que la revue de captures d'écran depuis un agent de code (Cline, OpenCode) devient pratique : voir Agents de code.

  • GET /v1/chat/models ne déclare pas la prise en charge des images. Il n'y a pas de champ modalities ni vision, si bien que les outils qui détectent automatiquement les capacités supposent du texte seul. Vous devez le leur indiquer (OpenCode : déclarez modalities vous-même, voir Agents de code)
  • Transmettre image_url à un modèle texte seul comme deepseek-v3 renvoie une erreur
  • Les images sont converties en tokens et facturées (selon les règles d'OpenAI ; une image en detail: low ≈ 85 tokens. gpt-4o-mini compte environ 33 fois plus de tokens mais à un prix unitaire plus bas, si bien que le coût revient à peu près au même ; mesuré : une image low plus un court prompt ≈ 2,900 tokens). Pour les tarifs en AP par modèle, voir GET /v1/chat/models

Dépannage​

SymptômeCause
403 ForbiddenLa clé n'a pas le scope llm -> demandez à la personne qui l'a émise de l'ajouter
401 UnauthorizedClé invalide ou expirée
Erreur de récupération de l'imageL'URL est privée ou exige une authentification -> envoyez-la plutôt en base64 (data URL)

Documentation officielle d'OpenAI (source primaire de la spécification compatible)​

© 2026 AICU Inc.