Les étapes d'exécution décrivent les actions qu'un agent effectue lors d'une exécution, y compris les appels de modèle et d'outils.
ImportantL'Assistant API 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 sur plusieurs tours.
Lister les étapes d'exécution
Renvoie la liste de toutes les étapes d'une tâche d'exécution.
Exemple de requête
HTTP
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_cc2a3e9d-436b-482b-91c5-377e0f376506/runs/run_3de634fa-75d4-4370-adcf-92ba2a60c396/steps?limit=20&order=asc' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
SDK
import dashscope
from dashscope import Steps
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
steps = Steps.list(
'run_id',
# We recommend setting the API key as an environment variable. If not, replace `api_key=os.getenv(...)` with `api_key="your_api_key"`.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id',
limit=20
)
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.runs.RunStep;
import com.alibaba.dashscope.threads.runs.Runs;
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 {
Runs runs = new Runs();
// We recommend setting the API key as an environment variable. If not, replace `apiKey(System.getenv(...))` with `apiKey("your_api_key")`.
GeneralListParam listSteps = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<RunStep> run = runs.listSteps("threadId", "runId", listSteps);
}
}
Corps de la requête
Nom du paramètre | Type | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|---|
run_id | string | Oui | ID de l'exécution dont vous souhaitez lister les étapes. | |
thread_id | string | Oui | ID du thread. | |
limit | integer | Non | None | Nombre d'étapes d'exécution à récupérer. La valeur par défaut est None. Une valeur None applique la valeur par défaut du serveur. |
order | string | Non | None | Ordre de tri des résultats basé sur le champ created_at. Définissez ce paramètre sur asc (croissant) ou desc (décroissant). La valeur par défaut est None, ce qui applique le tri par défaut du serveur. |
after | string | Non | None | ID de l'étape d'exécution à utiliser comme curseur pour la pagination. Si fourni, renvoie la page de résultats située immédiatement après cette étape. |
before | string | Non | None | ID de l'étape d'exécution à utiliser comme curseur pour la pagination. Si fourni, renvoie la page de résultats située immédiatement avant cette étape. |
workspace | string | Oui | None | L'ID de l'espace de travail pour Alibaba Cloud Model Studio est requis uniquement si la |
api_key | string | Oui | None | L'API Key de Model Studio. Nous vous recommandons de configurer l'API Key en tant que variable d'environnement. |
Exemple de réponse
{
"object": "list",
"data": [
{
"id": "[REDACTED]",
"object": "thread.run.step",
"created_at": 1711517599333,
"assistant_id": "[REDACTED]",
"thread_id": "[REDACTED]",
"run_id": "[REDACTED]",
"type": "message_creation",
"status": "completed",
"step_details": {
"type": "message_creation",
"message_creation": {
"message_id": "[REDACTED]"
}
},
"last_error": {
"code": "",
"message": ""
},
"expired_at": 0,
"cancelled_at": -1,
"failed_at": -1,
"completed_at": -1,
"metadata": {},
"usage": {}
}
],
"first_id": "[REDACTED]",
"last_id": "[REDACTED]",
"has_more": false,
"request_id": "[REDACTED]"
}
Corps de la réponse
Une liste d'objets d'étape d'exécution
Récupérer une étape d'exécution
Exemple de requête
HTTP
Exemple de codecurl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_cc2a3e9d-436b-482b-91c5-377e0f376506/runs/run_3de634fa-75d4-4370-adcf-92ba2a60c396/steps/step_4db180b5-d44a-4b12-9390-4307c6cb87a5' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
SDK
Exemple de codeimport dashscope
from dashscope import Steps
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
step = Steps.retrieve(
'step_id',
# We recommend setting the API key as an environment variable. If not, replace `api_key=os.getenv(...)` with `api_key="your_api_key"`.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id',
run_id='run_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.runs.RunStep;
import com.alibaba.dashscope.threads.runs.Runs;
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 {
Runs runs = new Runs();
// We recommend setting the API key as an environment variable. If not, replace `apiKey=System.getenv(...)` with `apiKey="your_api_key"`.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
RunStep run = runs.retrieveStep("threadId", "runId", "stepId", apiKey);
}
}
Corps de la requête
Nom du paramètre | Type | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|---|
step_id | string | Oui | ID de l'étape d'exécution (RunStep) à récupérer. | |
thread_id | string | Oui | ID du thread. | |
run_id | string | Oui | ID de l'exécution. | |
workspace | string | Oui | None | L'ID de l'espace de travail pour Alibaba Cloud Model Studio est requis uniquement si vous utilisez une API Key de sous-espace de travail. |
api_key | string | Oui | None | L'API Key de Model Studio. Nous vous recommandons de configurer l'API Key en tant que variable d'environnement. |
Exemple de réponse
{
"assistant_id": "[REDACTED]",
"cancelled_at": null,
"completed_at": 1735025124000,
"created_at": 1735025123150,
"expired_at": null,
"failed_at": null,
"id": "[REDACTED]",
"last_error": null,
"metadata": {},
"object": "thread.run.step",
"request_id": "[REDACTED]",
"run_id": "[REDACTED]",
"status": "completed",
"step_details": {
"message_creation": {
"message_id": "[REDACTED]"
},
"type": "message_creation"
},
"thread_id": "[REDACTED]",
"type": "message_creation",
"usage": null
}
Corps de la réponse
L'objet d'étape d'exécution correspondant à l'ID spécifié.
Objet d'étape d'exécution
Représente une étape du processus d'exécution d'une tâche.
Exemple d'objet
{
"id": "[REDACTED]",
"assistant_id": "[REDACTED]",
"cancelled_at": null,
"completed_at": 1678886400,
"created_at": 1678886300,
"expired_at": null,
"failed_at": null,
"last_error": null,
"metadata": {
"user_id": "[REDACTED]",
"context": "order_processing"
},
"object": "thread.run.step",
"run_id": "[REDACTED]",
"status": "completed",
"step_details": {
"type": "message_creation",
"message_creation": {
"message_id": "[REDACTED]"
}
},
"thread_id": "[REDACTED]",
"type": "message_creation",
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}
Attributs de l'objet
Nom du paramètre | Type | Description |
|---|---|---|
id | string | Identifiant unique de l'étape d'exécution, pouvant être référencé dans les endpoints d'API. |
assistant_id | string | ID de l'assistant associé à cette étape d'exécution. |
cancelled_at | integer | Horodatage UNIX à 13 chiffres (en millisecondes) indiquant l'annulation de l'étape d'exécution. |
completed_at | integer | Horodatage UNIX à 13 chiffres (en millisecondes) indiquant la fin de l'étape d'exécution. |
created_at | integer | Horodatage UNIX à 13 chiffres (en millisecondes) indiquant la création de l'étape d'exécution. |
expired_at | integer | Horodatage UNIX à 13 chiffres (en millisecondes) indiquant l'expiration de l'étape d'exécution. Si l'exécution parente a expiré, l'étape est également considérée comme expirée. |
failed_at | integer | Horodatage UNIX à 13 chiffres (en millisecondes) indiquant l'échec de l'étape d'exécution. |
last_error | object | Dernière erreur associée à cette étape d'exécution. Ce paramètre est null si aucune erreur ne s'est produite. |
metadata | map | Ensemble de 16 paires clé-valeur maximum pouvant être attachées à l'objet. Permet de stocker des informations supplémentaires structurées sur l'objet. La longueur maximale d'une clé est de 64 caractères et celle d'une valeur est de 512 caractères. |
object | string | Type d'objet, toujours thread.run.step. |
run_id | string | ID de l'exécution à laquelle appartient cette étape. |
status | string | Statut de l'étape d'exécution. Valeurs valides : in_progress, cancelled, failed, completed ou expired. |
step_details | object | Détails de l'étape d'exécution. |
thread_id | string | ID du thread en cours d'exécution. |
type | string | Type de l'étape d'exécution. Valeurs valides : message_creation ou tool_calls. |
usage | object | Statistiques d'utilisation des ressources. |
status_code | integer | Code de statut HTTP. Remarque : Ce paramètre sert au traitement interne. Dans la plupart des cas, vous pouvez l'ignorer. |
Codes d'erreur
Si un appel échoue et renvoie un message d'erreur, consultez la rubrique Codes d'erreur pour le dépannage.