Saltar a contenido

Ejecutar un job a través de la API#

Login en la API#

Lo primero que necesitas hacer es autenticarte en la API y obtener un access token.

Ejecutar un job usando un dataset subido previamente#

El endpoint para ejecutar un job para un caso de uso determinado es el siguiente:

curl -X POST https://api.sandbox.qcentroid.com/problem/problem-urn
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{"data_file_identifier": "070737d79192e816db1581409256bdefa0a834fb"}'
response = requests.post(
                url="https://api.sandbox.qcentroid.com/problem/maxcut",
                json={"data_file_identifier": "070737d79192e816db1581409256bdefa0a834fb"},
                headers={"Authorization": "Bearer " + access_token})

En el cuerpo de la petición debes incluir el dataset id, que corresponde a un archivo ya subido a la plataforma y que contiene los datos de entrada para esta ejecución.

Cuando el job se lanza correctamente, la API devuelve el Job Id, que se usará más adelante para comprobar su estado y obtener la salida.

Job execution response
{
    "detail": "Authorized. Processing file",
    "job": "W4P3Q4YTSDU1"
}

Ejecutar un job proporcionando datos inline#

Si los datos de entrada para la ejecución no son demasiado grandes (menos de 4MB), puedes proporcionarlos directamente en la petición en formato JSON.

En este ejemplo, proporcionamos datos de entrada para el caso de uso Max Cut:

curl -X POST https://api.sandbox.qcentroid.com/problem/maxcut
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{ "num_nodes": 6,
    "adj_matrix": [[0, 9, 5, 2, 4, 1],
                    [9, 0, 3, 8, 7, 6],
                    [5, 3, 0, 2, 8, 4],
                    [2, 8, 2, 0, 9, 3],
                    [4, 7, 8, 9, 0, 2],
                    [1, 6, 4, 3, 2, 0]] }'
response = requests.post(
                url="https://api.sandbox.qcentroid.com/problem/maxcut",
                json={  "num_nodes": 6,
                        "adj_matrix": [[0, 9, 5, 2, 4, 1],
                                        [9, 0, 3, 8, 7, 6],
                                        [5, 3, 0, 2, 8, 4],
                                        [2, 8, 2, 0, 9, 3],
                                        [4, 7, 8, 9, 0, 2],
                                        [1, 6, 4, 3, 2, 0]] },
                headers={"Authorization": "Bearer " + access_token})

Tip

Visita la página de detalle del caso de uso en el dashboard web para comprobar el formato de los datos de entrada.

Cuando el job se lanza correctamente, la API devuelve el Job Id, que se usará más adelante para comprobar su estado y obtener la salida.

Job execution response
{
    "detail": "Authorized. Processing file",
    "job": "W4P3Q4YTSDU1"
}

Comprobar el estado de un job#

Para comprobar el estado de un job, usa la siguiente petición GET de la API proporcionando el Job Id obtenido en la ejecución:

curl -X GET https://api.sandbox.qcentroid.com/job/W4P3Q4YTSDU1
-H 'Authorization: Bearer {access_token}'
response = requests.get(
                url="https://api.sandbox.qcentroid.com/job/W4P3Q4YTSDU1",
                headers={"Authorization": "Bearer " + access_token})

Este endpoint devuelve un objeto JSON como este, con todos los detalles del job:

Job status response
{
    "job": {
        "W4P3Q4YTSDU1": {
            "status": "PENDING",
            "started_at": "08/15/2024, 10:52:45",
            "end_at": "",
            "executions": {

                ...

            }
        }
    }
}

Qué sigue#

Ver los resultados del job en el dashboard web

Visitar el sitio de documentación de la API