Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Messages (Deprecated)

Dernière mise à jour :Oct 11, 2026

Cette rubrique explique comment utiliser la classe Message de l'API Assistant pour créer, lister, récupérer et modifier des messages.

ImportantL'API Assistant est en cours de dépréciation. Migrez vers l'API Responses comme alternative. L'API Responses intègre plusieurs outils natifs et prend en charge la gestion du contexte multi-tours.

Nom de la fonction

Type

create

Créer une classe de message

retrieve

Récupérer une classe de message

modify

Modifier une classe de message

list

Lister les classes de messages

Créer un message

HTTP

Exemple de code
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
    "role": "user",
    "content": "Who are you",
    "metadata": {}
}'
Paramètres de la requête

Nom du paramètre

Paramètres d'entrée

Type de paramètre

Obligatoire

thread id

ID du thread auquel transmettre le message.

string

Oui

content

Contenu du message.

string

Oui

role

Rôle de l'entité émettrice du message. Seule la valeur user est prise en charge.

string

Non

metadata

Autres informations associées.

object

Non

Réponse
{
    "id": "message_f1933671-19e1-4162-ad25-7326165123e1",
    "object": "thread.message",
    "created_at": 1711508433283,
    "thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
    "incomplete_details": {},
    "completed_at": null,
    "incomplete_at": null,
    "assistant_id": "",
    "run_id": "",
    "file_ids": [],
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "Who are you",
                "annotations": []
            }
        }
    ],
    "metadata": {},
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "status": "",
    "request_id": "b3ad40b9-f052-9665-a064-dab11c34625f"
}
Paramètres de la réponse

La classe de message est retournée. Outre les paramètres de la requête, la réponse contient les champs suivants :

  • id : ID du message.
  • request_id : ID de la requête.

SDK

Exemple de code
from dashscope import Messages
import dashscope
import os

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
msg = Messages.create(
    'the_thread_id',
    # Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    content='The message content.',
    role='user',
    metadata={'key': 'value'}
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.TextMessageParam;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        // create a message to thread
        Messages messages = new Messages();
        TextMessageParam param = TextMessageParam.builder()
                // Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .role("user")
                .content("How to make delicious beef and potato stew?")
                .build();
        ThreadMessage message = messages.create("threadId", param);
    }
}
Paramètres de la requête

Paramètre

Type

Valeur par défaut

Description

thread_id

string

-

ID du thread.

content

string

-

Contenu du message.

role

str

'user'

Rôle du message. Valeur par défaut : user.

metadata

Dict

None

Informations clé-valeur associées au message.

workspace

string

None

ID de l'espace de travail d'Alibaba Cloud Model Studio. Ce paramètre est requis uniquement si api_key correspond à une clé API de sous-espace de travail.

api_key

string

None

Clé API pour Alibaba Cloud Model Studio. Nous vous recommandons de configurer la clé API comme variable d'environnement.

Réponse

Le résultat est un objet Message. Le code suivant présente un exemple de contenu au format JSON :

{
    "id": "message_05494921-a646-484e-85fc-76329acba842",
    "object": "thread.message",
    "created_at": 1711345341301,
    "thread_id": "thread_f1e7737e-b045-479f-99d1-510db49d535b",
    "incomplete_details": {},
    "completed_at": null,
    "incomplete_at": null,
    "assistant_id": "",
    "run_id": "",
    "file_ids": [],
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "sdhafjdasf",
                "annotations": []
            }
        }
    ],
    "metadata": {
        "key": "value"
    },
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "status": "",
    "status_code": 200,
    "request_id": "631de0b3-7e50-9c9e-8444-0924d1b7e7a5"
}
Paramètres de la réponse

Nom du champ

Type du champ

Description du champ

status_code

int

Code d'état HTTP de l'appel. La valeur 200 indique un succès. Toute autre valeur signale un échec.

id

string

ID du message, sous forme de chaîne UUID.

content

List[dict]

Contenu du message.

content.type

string

Type de contenu, par exemple text.

content.text

dict

Contenu

content.text.value

string

Valeur textuelle du contenu.

metadata

Dict

Informations clé-valeur associées à ce message.

tool_calls

Dict

Informations sur les appels d'outils.

plugin_call

Dict

Informations sur les appels de plugins.

created_at

timestamp

Heure de création de l'assistant.

gmt_created

datetime

2024-03-22 17:12:31

gmt_modified

datetime

2024-03-22 17:12:31

code

string

Indique que la requête a échoué. Ce paramètre spécifie le code d'erreur. Il est ignoré si la requête réussit.

Python uniquement.

message

string

Signale l'échec de la requête. Ce paramètre fournit des détails sur l'erreur. Il est ignoré si la requête réussit.

Python uniquement.

Lister les messages

HTTP

Exemple de code
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages?limit=2&order=desc' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Paramètres de la requête

Nom du paramètre

Description

Type de paramètre

Obligatoire

thread id

ID du thread auquel transmettre le message.

string

Oui

limit

Nombre de messages.

integer

Non

order

Ordre de tri par date de création : asc ou desc.

string

Non (Par défaut : desc)

Réponse
{
    "object": "list",
    "data": [
        {
            "id": "message_f1933671-19e1-4162-ad25-7326165123e1",
            "object": "thread.message",
            "created_at": 1711508433283,
            "thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
            "assistant_id": "",
            "run_id": "",
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": {
                        "value": "Who are you",
                        "annotations": []
                    }
                }
            ],
            "metadata": {},
            "name": "",
            "plugin_call": {},
            "tool_calls": [],
            "status": ""
        }
    ],
    "first_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
    "last_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
    "has_more": false,
    "request_id": "78f7d607-4a9a-90c6-8040-d3f81c84d60a"
}
Paramètres de la réponse

Une liste de classes de messages est retournée. La réponse inclut également les paramètres de la requête d'origine ainsi que les champs supplémentaires suivants :

  • Liste contenant plusieurs messages.

SDK

Exemple de code
from dashscope import Messages
import dashscope
import os

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = Messages.list(
    'thread_id',
    # Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    limit=1,
    order='desc'
)
import com.alibaba.dashscope.common.GeneralListParam;
import com.alibaba.dashscope.common.ListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        Messages messages = new Messages();
        // Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
        GeneralListParam listThreadMessages = GeneralListParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .build();
        ListResult<ThreadMessage> message = messages.list("threadId", listThreadMessages);
    }
}
Paramètres de la requête

Paramètre

Type

Valeur par défaut

Description

thread_id

string

-

ID du thread à interroger.

limit

int

None

Nombre de messages à récupérer.

order

string

None

Ordre de tri selon created_at.

workspace

string

None

ID de l'espace de travail d'Alibaba Cloud Model Studio. Ce paramètre est requis uniquement si api_key correspond à une clé API de sous-espace de travail.

api_key

string

None

Clé API pour Alibaba Cloud Model Studio. Nous vous recommandons de définir la clé API comme variable d'environnement.

Paramètres de la réponse

Nom du champ

Type du champ

Description du champ

has_more

boolean

Indique s'il reste des messages à récupérer.

last_id

string

ID du dernier message de la liste retournée.

first_id

string

ID du premier message de la liste retournée.

data

list[Message]

Liste d'objets Message.

Récupérer un message

HTTP

Exemple de code
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Paramètres de la requête

Nom du paramètre

Description

Type de paramètre

Obligatoire

thread id

ID du thread contenant le message à récupérer.

string

Oui

message_id

ID du message à récupérer.

string

Oui

Réponse
{
    "id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
    "object": "thread.message",
    "created_at": 1711508622598,
    "thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
    "assistant_id": "",
    "run_id": "",
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "Hello",
                "annotations": []
            }
        }
    ],
    "metadata": {},
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "status": "",
    "request_id": "4d5ce962-91c3-9edb-87f7-00bbf985135e"
}
Paramètres de la réponse

La classe de message récupérée est retournée. Outre les paramètres de la requête, la réponse contient les champs suivants :

  • id : ID du message.
  • request_id : ID de la requête.

SDK

Exemple de code
from dashscope import Messages
import dashscope
import os

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

message = Messages.retrieve(
    'message_id',
    # Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    thread_id='thread_id'
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        Messages messages = new Messages();
        // Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
        String apiKey = System.getenv("DASHSCOPE_API_KEY");
        ThreadMessage message = messages.retrieve("threadId", "messageId", apiKey);
    }
}
Paramètres de la requête

Paramètre

Type

Valeur par défaut

Description

message_id

string

-

ID du message à interroger.

thread_id

string

-

ID du thread auquel appartient le message.

workspace

string

None

ID de l'espace de travail d'Alibaba Cloud Model Studio. Ce paramètre est requis uniquement si api_key est une clé API de sous-espace de travail.

api_key

string

None

Clé API pour Alibaba Cloud Model Studio. Nous vous recommandons de configurer la clé API comme variable d'environnement.

Paramètres de la réponse

Reportez-vous à la réponse de l'opération de création.

Modifier un message

HTTP

Exemple de code
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
    "metadata": {
        "modified": "true",
        "user": "abc123"
    }
}'
Paramètres de la requête

Nom du paramètre

Paramètres d'entrée

Type de paramètre

Obligatoire

thread_id

ID du thread à modifier.

string

Oui

message_id

ID du message à modifier.

string

Oui

metadata

Métadonnées.

dict

Réponse
{
    "id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
    "object": "thread.message",
    "created_at": 1711508622598,
    "thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
    "incomplete_details": {},
    "completed_at": null,
    "incomplete_at": null,
    "assistant_id": "",
    "run_id": "",
    "file_ids": [],
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "Hello",
                "annotations": []
            }
        }
    ],
    "metadata": {
        "modified": "true",
        "user": "abc123"
    },
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "status": "",
    "request_id": "7877b011-cb94-9df1-9add-dc42b7d611f6"
}
Paramètres de sortie

La classe de message modifiée est retournée. Outre les paramètres de la requête, la réponse contient les champs suivants :

  • id : ID du message.
  • request_id : ID de la requête.

SDK

Exemple de code
from dashscope import Messages
import dashscope
import os

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

thread = Messages.update(
    'message_id',
    # Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    thread_id='the_message_thread_id',
    metadata={'key': 'value'}
)
import java.util.Collections;
import com.alibaba.dashscope.common.UpdateMetadataParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
        Messages messages = new Messages();
        // Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
        UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
                .metadata(Collections.singletonMap("key", "value"))
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .build();
        messages.update("thread_id", "message_Id", updateMetadataParam);
    }
}
Paramètres de la requête

Paramètre

Type

Valeur par défaut

Description

message_id

string

-

ID du message à mettre à jour.

thread_id

string

-

ID du thread auquel appartient le message à mettre à jour.

metadata

Dict

None

Informations associées au thread.

workspace

string

None

ID de l'espace de travail d'Alibaba Cloud Model Studio. Ce paramètre est requis uniquement si api_key est une clé API de sous-espace de travail.

api_key

string

None

Clé API pour Alibaba Cloud Model Studio. Nous vous recommandons de configurer la clé API comme variable d'environnement.

Paramètres de la réponse

Reportez-vous à la réponse de l'opération de création.

Codes d'erreur

Si un appel à l'API Assistant échoue et renvoie un message d'erreur, consultez la rubrique Messages d'erreur pour résoudre le problème.