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
Poetrydeve ser instalada no ambiente local. Para instalar oPoetry, 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.
- Alguns modelos exigem um arquivo de configuração preparado corretamente (
config.toml). Se um modelo baixado contiverconfig.tomlcom 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.envarquivo. O.envarquivo deve estar localizado no caminho a partir do qual os comandos cli são chamados. - A
distpasta 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-cliessa 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:
Crie o modelo em seu IDE:
watsonx-ai template newUma 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.
Navegue até o diretório do modelo:
cd <template directory> cp config.toml.example config.toml cp template.env .envPersonalize o código do modelo e edite os arquivos
config.toml.enve para atualizar os valores dos placeholders.Teste o código do modelo:
watsonx-ai template invoke "<your query>"Criar um serviço:
watsonx-ai service newQuando o serviço é implantado, o site
ibm-watsonx-ai-cliretorna 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 comodeployment_idno arquivoconfig.toml. Se não fizer isso, você deverá fornecer a ID de implantação toda vez que invocar o serviço implantado.Teste o serviço
watsonx-ai service invoke "<your query>"
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:
Crie um aplicativo em seu IDE:
watsonx-ai app newUma 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.
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 .envEdite o arquivo
.envpara atualizar os valores do espaço reservado. Para oWATSONX_BASE_DEPLOYMENT_URL, use o URL para o ponto de extremidade de um serviço implantado.Inicie o aplicativo:
watsonx-ai app runComo 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 --devSe 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
- O arquivo leia-me IBM watsonx.ai CLI para agentes no repositório ibm- watsonx -ai-cli PyPi.
- O arquivo leia-me para a implantação de agentes usando watsonx.ai no repositório watsonx -developer-hub do Github
- O arquivo leia-me para a implantação de aplicativos usando watsonx.ai no repositório watsonx -developer-hub do Github