curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "glm-5.3-flash",
"input": "Présente-toi en une phrase.",
"max_output_tokens": 1024,
"reasoning": {
"effort": "low"
}
}
'{
"id": "response_demo",
"object": "response",
"created_at": 1789971757,
"model": "glm-5.3-flash",
"status": "completed",
"output": [
{
"type": "message",
"id": "message_demo",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Bonjour, je suis GLM. Je peux vous aider à discuter, rédiger et programmer.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 17,
"output_tokens": 24,
"total_tokens": 41,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}API tous modèles GLM - Référence complète Responses
Appelez GLM au format Responses pour les conversations textuelles, le streaming et les appels de fonctions. La compréhension d’images et la recherche web dépendent du modèle. Les paramètres et différences sont présentés ci-dessous.
curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "glm-5.3-flash",
"input": "Présente-toi en une phrase.",
"max_output_tokens": 1024,
"reasoning": {
"effort": "low"
}
}
'{
"id": "response_demo",
"object": "response",
"created_at": 1789971757,
"model": "glm-5.3-flash",
"status": "completed",
"output": [
{
"type": "message",
"id": "message_demo",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Bonjour, je suis GLM. Je peux vous aider à discuter, rédiger et programmer.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 17,
"output_tokens": 24,
"total_tokens": 41,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}https://direct.evolink.ai, qui offre une meilleure prise en charge des modèles textuels et des connexions de longue durée. https://api.evolink.ai est le point de terminaison principal pour les services multimodaux et sert d’adresse de repli pour les modèles textuels.Modèles et différences de paramètres
Choisissez un modèle GLM. Les quatre acceptent du texte sur cet endpoint. Les fonctions optionnelles varient selon le modèle.| ID du modèle | Entrée | Remarques sur la réflexion |
|---|---|---|
glm-5.3 | Texte | Niveaux effectifs : low / high / max ; valeurs compatibles dans reasoning. La réflexion ne peut pas être désactivée. |
glm-5.3-flash | Texte, images | Comme glm-5.3 ; utilisez input_image pour les images. |
glm-5.3-flashx | Texte, images | Comme glm-5.3 ; utilisez input_image pour les images. |
glm-5.2 | Texte | none peut encore produire des tokens de réflexion et ne garantit pas sa désactivation. |
reasoning.effort imbriqué, au lieu de reasoning_effort ou thinking à la racine. Les tokens de réflexion sont inclus dans output_tokens. Une tâche simple peut renvoyer reasoning_tokens=0 ; cela ne signifie pas que la réflexion peut être désactivée.
Effort de raisonnement ; low est recommandé.
Règles de compatibilité de glm-5.3 / glm-5.3-flash / glm-5.3-flashx
| Valeur fournie | Niveau de réflexion effectif |
|---|---|
low / high / max | Inchangé |
xhigh | max |
medium | high |
minimal / none | low ; réflexion toujours active |
minimal et none ne désactivent pas la réflexion de la série 5.3. Les tokens de réflexion sont facturés en sortie. Les valeurs inconnues restent inchangées, sans correspondance de compatibilité ; utilisez les valeurs indiquées. Ces correspondances ne s’appliquent pas à glm-5.2.
Sur cet endpoint, glm-5.2 peut encore produire des tokens de réflexion avec none. Cette valeur ne garantit pas la désactivation de la réflexion.
Prompts système et conversations à plusieurs tours
instructions: Instructions système. glm-5.3-flash accepte ce champ lorsque input est une chaîne. Avec un tableau de messages, placez le prompt système dans le premier message role=system.
{
"model": "glm-5.3-flash",
"input": [
{
"role": "system",
"content": "Réponds brièvement en français."
},
{
"role": "user",
"content": "Retiens le code RED-583"
},
{
"role": "assistant",
"content": "C’est noté"
},
{
"role": "user",
"content": "Quel est le code ? Réponds uniquement avec le code."
}
],
"reasoning": {
"effort": "low"
},
"max_output_tokens": 1024
}
glm-5.3-flash et glm-5.3-flashx permettent de poursuivre avec store=true et previous_response_id. glm-5.2 ne permet pas la continuation par identifiant ; store=true ne l’active pas. Incluez plutôt l’historique complet dans input.
id à la racine de la réponse précédente. glm-5.3-flash et glm-5.3-flashx l’acceptent avec store=true et le même modèle. Transmettez cet id sans modification, et non l’id d’un élément output. glm-5.2 renvoie 400 pour ce champ. Pour changer de modèle, omettez-le et incluez l’historique complet dans input.
Réponses en streaming
Active le streaming SSE. Lisez le texte dans delta des événements response.output_text.delta. L’événement final de réussite est response.completed. Terminez aussi le tour et traitezresponse.incomplete, response.failed ou error. N’attendez pas uniquement [DONE] ou la fermeture de la connexion.
| Événement | Traitement |
|---|---|
response.created / response.in_progress | Début du tour. |
response.output_text.delta | Ajouter delta au texte de réponse. |
response.reasoning_text.delta / response.reasoning_summary_text.delta | Contenu de réflexion à séparer de la réponse ; accepter les deux formes d’événements. |
response.output_item.done | Récupérer l’élément de sortie complet, par exemple function_call. |
response.completed | Génération terminée ; lire response.output et response.usage. |
response.incomplete / response.failed / error | Traiter la troncature ou l’erreur et terminer le tour. |
response.completed tout en nécessitant l’exécution de la fonction et une nouvelle requête par votre application.
Appels de fonctions
Choisissez l’exemple de fonction dans le menu des requêtes. Responses utilise une définition de fonction à plat :{
"type": "function",
"name": "get_temperature",
"description": "Renvoie la température de la ville indiquée",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
],
"additionalProperties": false
}
}
- Parcourir
response.outputet récupérer tous les éléments type=function_call. - Analyser et valider la chaîne JSON arguments, puis exécuter chaque fonction dans votre application.
- Ajouter tout le précédent output à l’historique. Ajouter un
function_call_outputpar appel avec lecall_idd’origine et un output de type chaîne. - Envoyer l’historique mis à jour comme input de la requête suivante. L’exemple de retour de résultat illustre cette structure.
parallel_tool_calls: Autorise plusieurs appels d’outils dans un tour. false ne garantit pas un seul appel de fonction. Le client doit parcourir et traiter tous les function_call.Images, recherche et sortie JSON
Pourglm-5.3-flash et glm-5.3-flashx, mélangez input_text et input_image dans le tableau content du message utilisateur. image_url reçoit une URL publique d’image ou une Data URL Base64. Utilisez uniquement du texte avec glm-5.3 et glm-5.2.
Déclarez tools: [{"type":"web_search"}]. La recherche est exécutée sur le serveur et renvoie des éléments web_search_call et du texte. Vérifiez les éléments de sortie pour savoir si elle a été utilisée. Des frais par recherche peuvent s’ajouter aux tokens ; consultez les tarifs du modèle.
Pour poursuivre après une recherche, ajoutez l’intégralité du output précédent, y compris web_search_call et message, à input, puis ajoutez votre nouvelle question. Conservez les champs originaux tels que id, status et action. La recherche a déjà été exécutée par le serveur : ne créez pas de function_call_output pour web_search_call. Consultez l’exemple de requête web_search_history.
text.format.type: Format de sortie : text pour du texte, json_object pour un objet JSON. Avec json_object, demandez explicitement du JSON valide dans le prompt, puis analysez et validez la réponse côté client. Les contraintes JSON Schema strictes ne sont pas proposées ; json_schema ou strict=true ne garantissent pas une structure précise.
Réponses et utilisation
Éléments de sortie ordonnés. Extrayez text des entrées content de typeoutput_text dans les éléments type=message. reasoning peut précéder la réponse ; un tour function_call peut n’avoir aucun texte de réponse. Ne lisez pas systématiquement output[0].
output_text: Texte de réponse agrégé facultatif ; il peut être absent. Les clients génériques doivent parcourir output.
output_text dans un élément message ; éventuellement reasoning_text dans un élément reasoning. La réflexion peut aussi être renvoyée via summary_text. Un élément reasoning n’a pas nécessairement de champ content.
usage.input_tokens: Total des tokens d’entrée, y compris ceux du cache.usage.input_tokens_details.cached_tokens: Sous-ensemble des tokens d’entrée trouvé dans le cache ; ne l’ajoutez pas de nouveau à input_tokens. Le cache de préfixe est automatique, sanscache_controlexplicite. Le nombre de tokens concernés est celui renvoyé dans la réponse.usage.output_tokens: Total des tokens de sortie, réflexion comprise.usage.output_tokens_details.reasoning_tokens: Sous-ensemble des tokens de sortie consacré à la réflexion ; ne le comptez pas de nouveau dans output_tokens. Cette valeur peut être absente ou nulle.
status=incomplete avec incomplete_details.reason=max_output_tokens signifie que le budget est épuisé. Il peut y avoir de la réflexion sans réponse ; augmentez la limite de sortie.Autorisations
Transmettez Bearer YOUR_API_KEY dans l’en-tête Authorization.
Corps
Choisissez un modèle GLM. Les quatre acceptent du texte sur cet endpoint. Les fonctions optionnelles varient selon le modèle.
| ID du modèle | Entrée | Remarques sur la réflexion |
|---|---|---|
glm-5.3 | Texte | Niveaux effectifs : low / high / max ; valeurs compatibles dans reasoning. La réflexion ne peut pas être désactivée. |
glm-5.3-flash | Texte, images | Comme glm-5.3 ; utilisez input_image pour les images. |
glm-5.3-flashx | Texte, images | Comme glm-5.3 ; utilisez input_image pour les images. |
glm-5.2 | Texte | none peut encore produire des tokens de réflexion et ne garantit pas sa désactivation. |
glm-5.3, glm-5.3-flash, glm-5.3-flashx, glm-5.2 "glm-5.3-flash"
Obligatoire. Chaîne de texte ou tableau d’éléments d’entrée Responses. Le tableau accepte des messages, des éléments de sortie du modèle renvoyés tels quels et function_call_output. Pour plusieurs échanges, incluez l’historique complet à chaque requête. Placez le prompt système en premier avec role=system. Les images utilisent input_image, uniquement avec glm-5.3-flash et glm-5.3-flashx. N’utilisez pas le format de blocs messages / image_url de Chat Completions.
"Présente-toi en une phrase."
Nombre maximal de tokens de sortie de cette génération, réflexion comprise. Commencez à 1024 et adaptez à la tâche. Un budget trop faible peut être épuisé pendant la réflexion et produire uniquement des éléments reasoning, sans réponse. Vérifiez status et incomplete_details. Le paramètre s’appelle max_output_tokens, pas max_tokens.
x >= 11024
Active le streaming SSE. Lisez le texte dans delta des événements response.output_text.delta. L’événement final de réussite est response.completed. Terminez aussi le tour et traitez response.incomplete, response.failed ou error. N’attendez pas uniquement [DONE] ou la fermeture de la connexion.
Responses utilise reasoning.effort imbriqué, au lieu de reasoning_effort ou thinking à la racine. Les tokens de réflexion sont inclus dans output_tokens. Une tâche simple peut renvoyer reasoning_tokens=0 ; cela ne signifie pas que la réflexion peut être désactivée.
Show child attributes
Show child attributes
Instructions système. glm-5.3-flash accepte ce champ lorsque input est une chaîne. Avec un tableau de messages, placez le prompt système dans le premier message role=system.
Accepte les outils function côté client et web_search côté serveur. Déclarez une fonction avec name / description / parameters à plat, sans objet function imbriqué comme dans Chat Completions. Votre application exécute function_call et renvoie son résultat. web_search s’exécute sur le serveur ; les recherches effectuées peuvent être facturées par appel en plus des tokens. Consultez les tarifs du modèle.
- Option 1
- Option 2
Show child attributes
Show child attributes
auto laisse le modèle choisir ; none désactive les outils ; required impose un appel d’outil. Pour une fonction précise : {"type":"function","name":"get_temperature"}. La sélection forcée n’est pas garantie de fonctionner de la même façon pour toutes les combinaisons de modèles et d’outils.
auto, none, required "auto"
Autorise plusieurs appels d’outils dans un tour. false ne garantit pas un seul appel de fonction. Le client doit parcourir et traiter tous les function_call.
Format de sortie. Les exemples utilisent json_object ; HTTP 200 ne garantit pas la conformité à un schéma JSON.
Show child attributes
Show child attributes
Enregistre la réponse pour la référencer ensuite. glm-5.3-flash et glm-5.3-flashx permettent de poursuivre avec store=true et previous_response_id. glm-5.2 ne permet pas la continuation par identifiant ; store=true ne l’active pas. Incluez plutôt l’historique complet dans input.
id à la racine de la réponse précédente. glm-5.3-flash et glm-5.3-flashx l’acceptent avec store=true et le même modèle. Transmettez cet id sans modification, et non l’id d’un élément output. glm-5.2 renvoie 400 pour ce champ. Pour changer de modèle, omettez-le et incluez l’historique complet dans input.
"Identifiant de réponse renvoyé au tour précédent"
Métadonnées personnalisées sous forme de paires de chaînes clé-valeur, disponibles dans metadata de la réponse. N’y incluez ni clés secrètes ni données sensibles.
Show child attributes
Show child attributes
{ "conversation": "demo" }
Paramètre d’échantillonnage. Sa plage effective et son effet dépendent du modèle. Il ne garantit pas une sortie déterministe et peut être omis pour les tâches de raisonnement.
Paramètre d’échantillonnage. Sa plage effective et son effet dépendent du modèle. Il peut généralement être omis.
Réponse
Génération terminée ou résultat incomplet ; vérifiez status. Le streaming renvoie text/event-stream.
Identifiant de cette réponse. À transmettre sans modification dans previous_response_id.
"response_demo"
"response"Date de création en secondes Unix.
"glm-5.3-flash"
completed indique la fin de génération du tour, éventuellement avec uniquement des appels d’outils. incomplete indique une sortie incomplète. Vérifiez output et error.
completed, incomplete, failed, in_progress, queued Éléments de sortie ordonnés. Extrayez text des entrées content de type output_text dans les éléments type=message. reasoning peut précéder la réponse ; un tour function_call peut n’avoir aucun texte de réponse. Ne lisez pas systématiquement output[0].
Show child attributes
Show child attributes
Texte de réponse agrégé facultatif ; il peut être absent. Les clients génériques doivent parcourir output.
Show child attributes
Show child attributes
Erreur de réponse, généralement null en cas de réussite.
Show child attributes
Show child attributes
Show child attributes
Show child attributes