Alterando a versão do Python para um modelo implementado existente com a API REST

Você pode atualizar um modelo de Decision Optimization existente usando a API REST de tempo de execuçãowatsonx.ai. Isso pode ser útil, por exemplo, se em seu modelo você especificou explicitamente uma versão do Python que agora se tornou descontinuada.

Antes de iniciar

Você precisará de seu SPACE-ID, MODEL-ID e DEPLOYMENT-ID para fazer essa mudança. Veja Exemplo de API REST para obter mais detalhes.

Sobre essa tarefa

As etapas a seguir mostram como atualizar um modelo implantado de Decision Optimization existente usando a API REST de tempo de execuçãowatsonx.ai. O exemplo de API de REST usa curl, uma ferramenta de linha de comandos e uma biblioteca para transferir dados com a sintaxe URL. Você pode fazer o download do curl e ler mais sobre ele em http://curl.haxx.se.

Para usuários do Windows, use ^ em vez de \ para o separador multilinhas e aspas duplas (") ao longo desses exemplos de código. Os usuários do Windows também precisam usar a indentação de pelo menos um espaço por caractere nas linhas de cabeçalho.

Para clareza, alguns exemplos de código neste procedimento foram colocados em um arquivo json para tornar os comandos mais legíveis e mais fáceis de usar.

Procedimento

Para alterar a versão do Python para um modelo implementado existente:

  1. Criar uma revisão para o seu modelo Decision Optimization

    Todas as solicitações da API requerem um parâmetro de versão que usa uma data no formato version=YYYY-MM-DD. Este exemplo de código posta um modelo que usa o arquivo update_model.json. A URL variará de acordo com a região/local escolhido para o seu serviço de aprendizado de máquina.

    curl --location --request POST \
      "https://us-south.ml.cloud.ibm.com/ml/v4/models/MODEL-ID-HERE/revisions?version=2025-04-01" \
      -H "Authorization: bearer TOKEN-HERE" \
      -H "Content-Type: application/json" \
      -d @revise_model.json
    O arquivo revise_model.json contém o código a seguir:
    {
      "commit_message": "Save current model",
      "space_id": "SPACE-ID-HERE"
    }
    Observe o número de revisão do modelo "rev" que é fornecido na saída para uso na próxima etapa.
  2. Atualize uma implementação existente para que as tarefas atuais não sejam impactadas:
    curl --location --request PATCH \
      "https://us-south.ml.cloud.ibm.com/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: bearer TOKEN-HERE" \
      -H "Content-Type: application/json" \
      -d @revise_deploy.json
    O arquivo revise_deploy.json contém o código a seguir:
    [
      {
      "op": "add",
      "path": "/asset",
      "value": {
        "id":"MODEL-ID-HERE",
        "rev":"MODEL-REVISION-NUMBER-HERE"
       }
      }
    ]
  3. Corrigir um modelo existente para especificar explicitamente a versão Python 3.12
    curl --location --request PATCH \
      "https://us-south.ml.cloud.ibm.com/ml/v4/models/MODEL-ID-HERE?rev=MODEL-REVISION-NUMBER-HERE&version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: bearer TOKEN-HERE" \
      -H "Content-Type: application/json" \
      -d @update_model.json
    O arquivo update_model.json, com a versão do Python padrão declarada explicitamente, contém o código a seguir:
    [
     {
     "op": "add",
     "path": "/custom",
     "value": {
       "decision_optimization":{
          "oaas.docplex.python": "3.12"
         }
       }
     }
    ]
    Como alternativa, para remover qualquer menção explícita de uma versão do Python para que a versão padrão seja sempre usada:
    [
     {
     "op": "remove",
     "path": "/custom/decision_optimization"
     }
    ]
  4. Atualize a implantação para usar o modelo que foi criado para Python para usar a versão 3.12
    curl --location --request PATCH \
      "https://us-south.ml.cloud.ibm.com/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: bearer TOKEN-HERE" \
      -H "Content-Type: application/json" \
      -d @update_deploy.json
    O arquivo update_deploy.json contém o código a seguir:
    [
     {
       "op": "add",
       "path": "/asset",
       "value": { "id":"MODEL-ID-HERE"}
     }
    ]

Resultados

É possível postar novas tarefas usando o DEPLOYMENT-ID sem ter que reimplementar seu modelo.