Codificação e implementação de serviços de IA com o ibm- watsonx -ai-cli

Use o pacote ibm-watsonx-ai-cli Python para fazer download, editar, testar e implantar serviços de IA em seu ambiente local.

Ao usar o site ibm-watsonx-ai-cli, dependendo de suas necessidades, você pode:

  • Teste um serviço de IA localmente, sem implantá-lo, passando argumentos para um modelo que foi baixado em seu ambiente local.
  • Implante um serviço de IA em watsonx.ai e, em seguida, teste-o localmente, passando argumentos para o serviço implantado.
  • Baixe, implemente e teste um aplicativo baseado em um serviço de IA.

Pré-requisitos:

  • Python 3.11
  • A ferramenta de gerenciamento de dependências e empacotamento Poetry deve ser instalada no ambiente local. Para instalar o Poetry, siga as instruções na página de instalação do Poetry.

Para começar a trabalhar com os modelos de serviço de IA em seu ambiente local, você deve primeiro instalar o site ibm-watsonx-ai-cli. Para instalar o ibm-watsonx-ai-cli, digite este comando em seu computador local: pip install -U ibm-watsonx-ai-cli.

Importante:
  • Alguns modelos exigem um arquivo de configuração preparado corretamente (config.toml). Se um modelo baixado contiver config.toml com placeholders, leia a descrição com atenção e preencha os campos obrigatórios.
  • Por motivos de segurança, recomenda-se não codificar sua chave de API ou outros segredos diretamente em seus scripts ou no arquivo config.toml . Em vez disso, configure-os como variáveis de ambiente e, em seguida, acesse as variáveis em seu código. Por exemplo: WATSONX_APIKEY = os.environ.get("WATSONX_APIKEY", "").
  • Desde a versão 0.2.0 do ibm-watsonx-ai-cli, a maneira recomendada para passar a chave API ou outros segredos necessários para autenticação em IBM watsonx.ai é usar o .env arquivo. O .env arquivo deve estar localizado no caminho a partir do qual os comandos cli são chamados.
  • A dist pasta que contém a distribuição do código-fonte do modelo é criada localmente quando o recurso de extensão do pacote é preparado. A partir da versão 0.3.0, ibm-watsonx-ai-cli essa pasta é automaticamente excluída após a implantação bem-sucedida do conteúdo do serviço de IA.

Exemplo de fluxo para implantação de um serviço de IA

Para implementar modelos de serviço de IA usando ibm-watsonx-ai-cli, consulte este exemplo de fluxo:

  1. Crie o modelo em seu IDE:

    watsonx-ai template new
    

    Uma lista de modelos disponíveis é exibida na tela. Digite o número que está associado ao modelo com o qual você deseja trabalhar. Em seguida, digite o nome da pasta a ser criada.

  2. Navegue até o diretório do modelo:

    cd <template directory>
    cp config.toml.example config.toml
    cp template.env .env
    
  3. Personalize o código do modelo e edite os arquivos config.toml.env e para atualizar os valores dos placeholders.

  4. Teste o código do modelo:

    watsonx-ai template invoke "<your query>"
    
  5. Criar um serviço:

    watsonx-ai service new
    

    Quando o serviço é implantado, o site ibm-watsonx-ai-cli retorna a ID da implantação. Se quiser que essa ID seja a ID de implantação padrão quando você invocar o serviço implantado, cole-a como deployment_id no arquivo config.toml . Se não fizer isso, você deverá fornecer a ID de implantação toda vez que invocar o serviço implantado.

  6. Teste o serviço

    watsonx-ai service invoke "<your query>"
    
Observação:

Se quiser testar seu serviço localmente usando uma interface gráfica de usuário, instale o aplicativo React UI. Para obter mais informações, consulte o aplicativo watsonx.ai AI Service UI

Exemplo de fluxo para criar um aplicativo baseado em um modelo de serviço de IA

Para criar aplicativos baseados em modelos de serviços de IA usando ibm-watsonx-ai-cli, consulte este exemplo de fluxo:

  1. Crie um aplicativo em seu IDE:

    watsonx-ai app new
    

    Uma lista de aplicativos disponíveis é exibida na tela. Digite o número que está associado ao aplicativo com o qual você deseja trabalhar. Em seguida, digite o nome da pasta a ser criada.

  2. Navegue até o diretório do aplicativo e copie o arquivo da variável de ambiente:

    cd <created folder with the app>
    cp template.env .env
    
  3. Edite o arquivo .env para atualizar os valores do espaço reservado. Para o WATSONX_BASE_DEPLOYMENT_URL, use o URL para o ponto de extremidade de um serviço implantado.

  4. Inicie o aplicativo:

    watsonx-ai app run
    

    Como alternativa, se você quiser fazer alterações no código-fonte do aplicativo enquanto ele estiver em execução, inicie o aplicativo no modo de desenvolvimento:

    watsonx-ai app run --dev
    

    Se um aplicativo estiver sendo executado no modo de desenvolvimento, sempre que você salvar as alterações, o aplicativo será recarregado.

Exemplo de fluxo para executar o eval comando

Use o eval comando para verificar o desempenho de um agente em um conjunto de dados específico. Você pode incluir vários arquivos de benchmarking em um único eval comando. Os resultados são calculados separadamente para cada arquivo.

O eval comando fornece várias métricas que podem ser usadas simultaneamente para avaliar o desempenho do agente. Para obter mais informações sobre as métricas disponíveis, execute:

watsonx-ai template eval --help

Para as métricas answer_similarityanswer_relevance e, você pode usar um LLM como juiz. Você pode fornecer o ID do modelo (o modelo deve estar disponível em seu ambiente de nuvem) ou usar a llm_as_judge palavra-chave (nesse caso, um dos dois modelos predefinidos será usado).

Aqui está um exemplo de uso do comando eval :

watsonx-ai template eval --tests test1.jsonl,test2.jsonl --metrics answer_similarity,answer_relevance --evaluator llm_as_judge

Aqui está um único resultado para uma métrica:

{
  "name": "answer_similarity",
  "method": "llm_as_judge",
  "provider": "unitxt",
  "value": 0.6333333333333333,
  "errors": null,
  "additional_info": null,
  "group": "answer_quality",
  "thresholds": [
    {
      "type": "lower_limit",
      "value": 0.7
    }
  ],
  "min": 0.0,
  "max": 1.0,
  "mean": 0.6333333333333333,
  "total_records": 3,
  "record_level_metrics": [
    {
      "name": "answer_similarity",
      "method": "llm_as_judge",
      "provider": "unitxt",
      "value": 1.0,
      "errors": null,
      "additional_info": null,
      "group": "answer_quality",
      "thresholds": [
        {
          "type": "lower_limit",
          "value": 0.7
        }
      ],
      "record_id": "c6ffedaa-b2b1-4ece-bbe6-0d680a470a12",
      "record_timestamp": null
    },
    {
      "name": "answer_similarity",
      "method": "llm_as_judge",
      "provider": "unitxt",
      "value": 0.9,
      "errors": null,
      "additional_info": null,
      "group": "answer_quality",
      "thresholds": [
        {
          "type": "lower_limit",
          "value": 0.7
        }
      ],
      "record_id": "f5c15bfc-80a8-4095-a2c3-54ae1c21dc23",
      "record_timestamp": null
    },
    {
      "name": "answer_similarity",
      "method": "llm_as_judge",
      "provider": "unitxt",
      "value": 0.0,
      "errors": null,
      "additional_info": null,
      "group": "answer_quality",
      "thresholds": [
        {
          "type": "lower_limit",
          "value": 0.7
        }
      ],
      "record_id": "f7dda69a-fd54-4b80-a966-2198c44109d8",
      "record_timestamp": null
    }
  ]
}

Saiba mais

Para obter mais detalhes, consulte