Ejemplo de API REST
Puede desplegar un modelo de Decision Optimization, crear y supervisar trabajos y obtener soluciones mediante la API REST de tiempo de ejecución dewatsonx.ai.
Antes de empezar
- Inicie la sesión en IBM Cloud.
- Cree su clave API de Cloud o clave API AWS. Cópiela o descárguela desde la ventana abierta de la clave API creada con éxito (no podrá volver a acceder a ella cuando cierre esta ventana).
- Opcional: Cree un servicio watsonx.ai Runtime.
- Seleccione una instancia de watsonx.ai Runtime de la lista de servicios AI/ Machine Learning en la vista de lista de recursos IBM Cloud.
Copie el Nombre, GUID y CRN del panel de información de su instancia de watsonx.ai Runtime. (Para abrir el panel de información, haga clic en cualquier lugar de la fila situada junto al nombre de su servicio watsonx.ai Runtime, pero no en el propio nombre. A continuación, se abre el panel de información en la misma ventana)
- Opcional: Crear un Cloud Object Storage.
- Seleccione una instancia de Cloud Object Storage de la lista de recursos de almacenamiento en la vista de lista de recursos de IBM Cloud.
Copie el Nombre y el CRN del panel de información de su instancia de almacenamiento.
- Opcional: Crear un espacio de despliegue, desde la interfaz de usuario. También puede crear un espacio de despliegue utilizando la API REST. Consulte Creación de un espacio de despliegue mediante la API REST.
- Seleccione un espacio de despliegue de la lista de Despliegues.
Copie el GUID del espacio de la pestaña Gestionar > General. Para obtener más información, consulte Espacios de despliegue.
Acerca de esta tarea
Los usuarios de Windows, deben utilizar ^ en lugar de \ como separador de varias líneas y doblar las comillas dobles en estos ejemplos de código. Los usuarios de Windows también necesitan utilizar indentación de al menos un carácter de espacio en las líneas de cabecera.
Para mayor claridad, se han colocado algunos ejemplos de código en este procedimiento en un archivo json para que los mandatos sean más legibles y más fáciles de utilizar.
Una vez que haya creado un despliegue mediante la API REST, también podrá visualizarlo y enviarle trabajos desde la página Despliegues > Espacios de la interfaz de usuario.
Procedimiento
- Genere un token IAM usando su clave API de Cloud o su clave API AWS de la siguiente manera.IBM Cloud
curl --request POST "https://iam.cloud.ibm.com/identity/token" \ -d "apikey=YOUR_API_KEY_HERE&grant_type=urn:ibm:params:oauth:grant-type:apikey" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic Yng6Yng="AWScurl --request POST --url https://account-iam.platform.saas.ibm.com/api/2.0/apikeys/token \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data "{ \"apikey\": \"YOUR_API_KEY_HERE\" }"Ejemplo de salida:{ "access_token": "****** obtained IAM token ******************************", "refresh_token": "**************************************", "token_type": "Bearer", "expires_in": 3600, "expiration": 1554117649, "scope": "ibm openid" }Utilice la señal obtenida (valor de access_token) antecedida por la palabra
Beareren la cabeceraAuthorizationywatsonx.ai Runtime service GUIDen la cabeceraML-Instance-ID, en todas las llamadas de API. - Opcional: Si no ha obtenido el SPACE-ID de la interfaz de usuario tal como se ha descrito anteriormente, puede crear un espacio utilizando la API REST de la forma siguiente. Utilice el token obtenido previamente precedido de la palabra
beareren la cabeceraAuthorizationen todas las llamadas a la API. Consulte las URL de los puntos finales de la nube o la URL de los puntos finales AWS.curl --location --request POST \ "https://api.dataplatform.cloud.ibm.com/v2/spaces" \ -H "Authorization: Bearer TOKEN-HERE" \ -H "ML-Instance-ID: MACHINE-LEARNING-SERVICE-GUID-HERE" \ -H "Content-Type: application/json" \ --data-raw "{ "name": "SPACE-NAME-HERE", "description": "optional description here", "storage": { "resource_crn": "COS-CRN-ID-HERE" }, "compute": [{ "name": "MACHINE-LEARNING-SERVICE-NAME-HERE", "crn": "MACHINE-LEARNING-SERVICE-CRN-ID-HERE" }] }"Para los usuarios de Windows, ponga el mandato--data-rawen una línea y sustituya todos los"por\"dentro de este mandato como se indica a continuación:
De forma alternativa, coloque los datos en un archivo aparte.curl --location --request POST ^ "https://api.dataplatform.cloud.ibm.com/v2/spaces" ^ -H "Authorization: Bearer TOKEN-HERE" ^ -H "ML-Instance-ID: MACHINE-LEARNING-SERVICE-GUID-HERE" ^ -H "Content-Type: application/json" ^ --data-raw "{\"name\": "SPACE-NAME-HERE",\"description\": \"optional description here\",\"storage\": {\"resource_crn\": \"COS-CRN-ID-HERE\" },\"compute\": [{\"name\": "MACHINE-LEARNING-SERVICE-NAME-HERE\",\"crn\": \"MACHINE-LEARNING-SERVICE-CRN-ID-HERE\" }]}"Se devuelve un SPACE-ID en el campoidde la secciónmetadata.Ejemplo de salida:
{ "entity": { "compute": [ { "crn": "MACHINE-LEARNING-SERVICE-CRN", "guid": "MACHINE-LEARNING-SERVICE-GUID", "name": "MACHINE-LEARNING-SERVICE-NAME", "type": "machine_learning" } ], "description": "string", "members": [ { "id": "XXXXXXX", "role": "admin", "state": "active", "type": "user" } ], "name": "name", "scope": { "bss_account_id": "account_id" }, "status": { "state": "active" } }, "metadata": { "created_at": "2025-04-17T08:36:57.611Z", "creator_id": "XXXXXXX", "id": "SPACE-ID", "url": "/v2/spaces/SPACE-ID" } }Debe esperar hasta que el estado del espacio de despliegue sea
"active"antes de continuar. Puede sondear para comprobarlo de la siguiente manera.curl --location --request GET "https://api.dataplatform.cloud.ibm.com/v2/spaces/SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" - Crear un modelo nuevo Decision Optimization
Todas las solicitudes de API requieren un parámetro de versión que tome una fecha en el formato
version=YYYY-MM-DD. Este ejemplo de código publica un modelo que utiliza el archivocreate_model.json. La dirección URL variará en función de la región/localización elegida para su servicio watsonx.ai Runtime. Consulte las URL de los puntos finales de la nube o la URL de los puntos finales AWS.
El archivo create_model.json contiene el código siguiente:curl --location --request POST \ "https://us-south.ml.cloud.ibm.com/ml/v4/models?version=2025-08-01" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -d @create_model.json{ "name": "ModelName", "description": "ModelDescription", "type": "do-docplex_22.1", "software_spec": { "name": "do_22.1" }, "custom": { "decision_optimization": { "oaas.docplex.python": "3.12" } }, "space_id": "SPACE-ID-HERE" }La Versión de Python se declara explícitamente aquí en un bloque
custom. Esto es opcional. Sin ella, su modelo utilizará la versión por defecto, que actualmente es Python 3.12. Puesto que la versión predeterminada irá cambiando con el tiempo, la versión de Python explícitamente le permite cambiar fácilmente más tarde o seguir utilizando una versión admitida más antigua cuando se actualiza la versión predeterminada. Actualmente puede utilizar Python 3.12 o 3.11.Si desea poder ejecutar trabajos para este modelo desde la interfaz de usuario, en lugar de utilizar solo la API REST, debe definir el esquema para los datos de entrada y salida. Si no define el esquema al crear el modelo, solo puede ejecutar trabajos utilizando la API REST y no desde la interfaz de usuario.
También puede utilizar el esquema especificado para entrada y salida en el modelo de optimización:
{ "name": "Diet-Model-schema", "description": "Diet", "type": "do-docplex_22.1", "schemas": { "input": [ { "id": "diet_food_nutrients", "fields": [ { "name": "Food", "type": "string" }, { "name": "Calories", "type": "double" }, { "name": "Calcium", "type": "double" }, { "name": "Iron", "type": "double" }, { "name": "Vit_A", "type": "double" }, { "name": "Dietary_Fiber", "type": "double" }, { "name": "Carbohydrates", "type": "double" }, { "name": "Protein", "type": "double" } ] }, { "id": "diet_food", "fields": [ { "name": "name", "type": "string" }, { "name": "unit_cost", "type": "double" }, { "name": "qmin", "type": "double" }, { "name": "qmax", "type": "double" } ] }, { "id": "diet_nutrients", "fields": [ { "name": "name", "type": "string" }, { "name": "qmin", "type": "double" }, { "name": "qmax", "type": "double" } ] } ], "output": [ { "id": "solution", "fields": [ { "name": "name", "type": "string" }, { "name": "value", "type": "double" } ] } ] }, "software_spec": { "name": "do_22.1" }, "space_id": "SPACE-ID-HERE" }Cuando publique un modelo, proporcione información sobre su tipo de modelo y la especificación de software que se utilizará.Por ejemplo, los tipos de modelos pueden ser:do-opl_22.1para modelos de OPLdo-cplex_22.1para modelos CPLEXdo-cpo_22.1para modelos CPdo-docplex_22.1para modelos Python
La versión 20.1 también se puede utilizar para estos tipos de modelo.
Para la especificación de software, puede utilizar las especificaciones predeterminadas utilizando sus nombres
do_22.1odo_20.1(El tiempo de ejecución do_20. 1 está obsoleto y pronto se eliminará). Véase también Extend software specification notebook que muestra cómo extender la Decision Optimization especificación de software (tiempos de ejecución con bibliotecas Python adicionales para modelos DOcplex).Se devuelve un MODEL-ID en el campo
idenmetadata.Ejemplo de salida:{ "entity": { "software_spec": { "id": "SOFTWARE-SPEC-ID" }, "type": "do-docplex_22.1" }, "metadata": { "created_at": "2025-04-17T08:37:22.992Z", "description": "ModelDescription", "id": "MODEL-ID", "modified_at": "2025-04-17T08:37:22.992Z", "name": "ModelName", "owner": "***********", "space_id": "SPACE-ID" } } - Cargue una formulación de modelo de Decision Optimization lista para el despliegue.Primero comprime tu modelo en un archivo (
tar.gz, .zip or .jar) y súbelo para que sea desplegado por el servicio watsonx.ai Runtime.Este ejemplo de código carga un modelo llamado diet.zip que contiene un modelo de Python sin datos maestros:curl --location --request PUT \ "https://us-south.ml.cloud.ibm.com/ml/v4/models/MODEL-ID-HERE/content?version=2025-08-01&space_id=SPACE-ID-HERE&content_format=native" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/gzip" \ --data-binary "@diet.zip"Puede descargar este ejemplo y otros modelos de DO-samples. Seleccione la subcarpeta de producto y versión relevante. - Desplegar el modeloCree una referencia a su modelo. Utilice el SPACE-ID y el MODEL-ID obtenidos al crear el modelo preparado para el despliegue y la especificación de hardware. Por ejemplo:
curl --location --request POST "https://us-south.ml.cloud.ibm.com/ml/v4/deployments?version=2025-08-01" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -d @deploy_model.jsonThe deploy_model.json file contains the following code:{ "name": "Test-Diet-deploy", "space_id": "SPACE-ID-HERE", "asset": { "id": "MODEL-ID-HERE" }, "hardware_spec": { "name": "S" }, "batch": {} }El DEPLOMENT-ID se devuelve en el campoidenmetadata. Ejemplo de salida:{ "entity": { "asset": { "id": "MODEL-ID" }, "custom": {}, "description": "", "hardware_spec": { "id": "HARDWARE-SPEC-ID", "name": "S", "num_nodes": 1 }, "name": "Test-Diet-deploy", "space_id": "SPACE-ID", "status": { "state": "ready" } }, "metadata": { "created_at": "2025-04-17T09:10:50.661Z", "description": "", "id": "DEPLOYMENT-ID", "modified_at": "2025-04-17T09:10:50.661Z", "name": "test-Diet-deploy", "owner": "**************", "space_id": "SPACE-ID" } } - Una vez desplegado, puede supervisar el estado de despliegue del modelo. Utilice el DEPLOYMENT-ID.Por ejemplo:
curl --location --request GET "https://us-south.ml.cloud.ibm.com/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2025-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json"Ejemplo de salida:
- A continuación, puede Enviar trabajos para el modelo desplegado definiendo los datos de entrada y la salida (resultados de la resolución de optimización) y el archivo de registro.Por ejemplo, a continuación se muestra el contenido de un archivo denominado
myjob.json. Contiene datos de entrada (en línea), algunos parámetros de resolución, y especifica que la salida será un archivo .csv. Para más información, consulte Decision Optimization despliegue por lotes y ejecución de modelos.
Este ejemplo de código publica un trabajo que utiliza este archivo{ "name":"test-job-diet", "space_id": "SPACE-ID-HERE", "deployment": { "id": "DEPLOYMENT-ID-HERE" }, "decision_optimization" : { "solve_parameters" : { "oaas.logAttachmentName":"log.txt", "oaas.logTailEnabled":"true" }, "input_data": [ { "id":"diet_food.csv", "fields" : ["name","unit_cost","qmin","qmax"], "values" : [ ["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10] ] }, { "id":"diet_food_nutrients.csv", "fields" : ["Food","Calories","Calcium","Iron","Vit_A","Dietary_Fiber","Carbohydrates","Protein"], "values" : [ ["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4] ] }, { "id":"diet_nutrients.csv", "fields" : ["name","qmin","qmax"], "values" : [ ["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100] ] } ], "output_data": [ { "id":".*\\.csv" } ] } }myjob.json.curl --location --request POST "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs?version=2025-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -H "cache-control: no-cache" \ -d @myjob.jsonSe devuelve un JOB-ID. Ejemplo de salida: (el trabajo está en cola){ "entity": { "decision_optimization": { "input_data": [{ "id": "diet_food.csv", "fields": ["name", "unit_cost", "qmin", "qmax"], "values": [["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10]] }, { "id": "diet_food_nutrients.csv", "fields": ["Food", "Calories", "Calcium", "Iron", "Vit_A", "Dietary_Fiber", "Carbohydrates", "Protein"], "values": [["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4]] }, { "id": "diet_nutrients.csv", "fields": ["name", "qmin", "qmax"], "values": [["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100]] }], "output_data": [ { "id": ".*\\.csv" } ], "solve_parameters": { "oaas.logAttachmentName": "log.txt", "oaas.logTailEnabled": "true" }, "status": { "state": "queued" } }, "deployment": { "id": "DEPLOYMENT-ID" }, "platform_job": { "job_id": "", "run_id": "" } }, "metadata": { "created_at": "2025-04-17T10:42:42.783Z", "id": "JOB-ID", "name": "test-job-diet", "space_id": "SPACE-ID" } } - También puede supervisar estados de trabajo. Utilice el JOB-IDPor ejemplo:
curl --location --request GET \ "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs/JOB-ID-HERE?version=2025-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json"Ejemplo de salida: (se ha completado el trabajo){ "entity": { "decision_optimization": { "input_data": [{ "id": "diet_food.csv", "fields": ["name", "unit_cost", "qmin", "qmax"], "values": [["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10]] }, { "id": "diet_food_nutrients.csv", "fields": ["Food", "Calories", "Calcium", "Iron", "Vit_A", "Dietary_Fiber", "Carbohydrates", "Protein"], "values": [["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4]] }, { "id": "diet_nutrients.csv", "fields": ["name", "qmin", "qmax"], "values": [["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100]] }], "output_data": [{ "fields": ["Name", "Value"], "id": "kpis.csv", "values": [["Total Calories", 2000], ["Total Calcium", 800.0000000000001], ["Total Iron", 11.278317739831891], ["Total Vit_A", 8518.432542485823], ["Total Dietary_Fiber", 25], ["Total Carbohydrates", 256.80576358904455], ["Total Protein", 51.17372234135308], ["Minimal cost", 2.690409171696264]] }, { "fields": ["name", "value"], "id": "solution.csv", "values": [["Spaghetti W/ Sauce", 2.1551724137931036], ["Chocolate Chip Cookies", 10], ["Lowfat Milk", 1.8311671008899097], ["Hotdog", 0.9296975991385925]] }], "output_data_references": [], "solve_parameters": { "oaas.logAttachmentName": "log.txt", "oaas.logTailEnabled": "true" }, "solve_state": { "details": { "KPI.Minimal cost": "2.690409171696264", "KPI.Total Calcium": "800.0000000000001", "KPI.Total Calories": "2000.0", "KPI.Total Carbohydrates": "256.80576358904455", "KPI.Total Dietary_Fiber": "25.0", "KPI.Total Iron": "11.278317739831891", "KPI.Total Protein": "51.17372234135308", "KPI.Total Vit_A": "8518.432542485823", "MODEL_DETAIL_BOOLEAN_VARS": "0", "MODEL_DETAIL_CONSTRAINTS": "7", "MODEL_DETAIL_CONTINUOUS_VARS": "9", "MODEL_DETAIL_INTEGER_VARS": "0", "MODEL_DETAIL_KPIS": "[\"Total Calories\", \"Total Calcium\", \"Total Iron\", \"Total Vit_A\", \"Total Dietary_Fiber\", \"Total Carbohydrates\", \"Total Protein\", \"Minimal cost\"]", "MODEL_DETAIL_NONZEROS": "57", "MODEL_DETAIL_TYPE": "LP", "PROGRESS_CURRENT_OBJECTIVE": "2.6904091716962637" }, "latest_engine_activity": [ "[2025-04-21T16:37:36Z, INFO] Model: diet", "[2025-04-21T16:37:36Z, INFO] - number of variables: 9", "[2025-04-21T16:37:36Z, INFO] - binary=0, integer=0, continuous=9", "[2025-04-21T16:37:36Z, INFO] - number of constraints: 7", "[2025-04-21T16:37:36Z, INFO] - linear=7", "[2025-04-21T16:37:36Z, INFO] - parameters: defaults", "[2025-04-21T16:37:36Z, INFO] - problem type is: LP", "[2025-04-21T16:37:36Z, INFO] Warning: Model: \"diet\" is not a MIP problem, progress listeners are disabled", "[2025-04-21T16:37:36Z, INFO] objective: 2.690", "[2025-04-21T16:37:36Z, INFO] \"Spaghetti W/ Sauce\"=2.155", "[2025-04-21T16:37:36Z, INFO] \"Chocolate Chip Cookies\"=10.000", "[2025-04-21T16:37:36Z, INFO] \"Lowfat Milk\"=1.831", "[2025-04-21T16:37:36Z, INFO] \"Hotdog\"=0.930", "[2025-04-21T16:37:36Z, INFO] solution.csv" ], "solve_status": "optimal_solution" }, "status": { "completed_at": "2025-04-21T16:37:36.989Z", "running_at": "2025-04-21T16:37:35.622Z", "state": "completed" } }, "deployment": { "id": "DEPLOYMENT-ID" } }, "metadata": { "created_at": "2025-04-21T16:37:09.130Z", "id": "JOB-ID", "modified_at": "2025-04-21T16:37:37.268Z", "name": "test-job-diet", "space_id": "SPACE-ID" } } - Opcional: puede suprimir trabajos de la forma siguiente:
curl --location --request DELETE "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs/JOB-ID-HERE?version=2025-08-01&space_id=SPACE-ID-HERE&hard_delete=true" \ -H "Authorization: bearer TOKEN-HERE"Si suprime un trabajo utilizando la API, todavía se mostrará en la interfaz de usuario. - Opcional: puede suprimir despliegues de la forma siguiente:Si suprime un despliegue que contiene trabajos utilizando la API, los trabajos seguirán mostrándose en el espacio de despliegue en la interfaz de usuario.
Resultados
Una vez que se ha desplegado el modelo y se ha ejecutado el trabajo, los resultados de la solución se proporcionan en línea o en el archivo y la ubicación que haya especificado, por ejemplo, utilizando una referencia de S3. Podrá publicar nuevos trabajos utilizando el deployment-ID sin tener que volver a desplegar el modelo.