Codificación y despliegue de servicios de IA con ibm- watsonx -ai-cli
Utilice el paquete ibm-watsonx-ai-cli Python para descargar, editar, probar e implantar servicios de IA desde su entorno local.
Utilizando ibm-watsonx-ai-cli, en función de sus necesidades, puede:
- Pruebe un servicio de IA localmente, sin desplegarlo, pasando argumentos a una plantilla descargada en su entorno local.
- Despliegue un servicio de IA en watsonx.ai y, a continuación, pruébelo localmente, pasando argumentos al servicio desplegado.
- Descargue, despliegue y pruebe una aplicación basada en un servicio de IA.
Requisitos previos:
- Python 3.11
- La herramienta de empaquetado y gestión de dependencias
Poetrydebe estar instalada en el entorno local. Para instalarPoetry, siga las instrucciones de la página de instalación de Poesía.
Para empezar a trabajar con plantillas de servicios AI en su entorno local, primero debe instalar ibm-watsonx-ai-cli. Para instalar ibm-watsonx-ai-cli, escriba este comando en su máquina local: pip install -U ibm-watsonx-ai-cli.
- Algunas plantillas requieren un archivo de configuración correctamente preparado (
config.toml). Si una plantilla descargada contieneconfig.tomlcon marcadores de posición, lea atentamente su descripción y rellene los campos obligatorios. - Por razones de seguridad, se recomienda no codificar su clave API u otros secretos directamente en sus scripts o en el archivo
config.toml. En su lugar, configúrelas como variables de entorno y luego acceda a las variables desde su código. Por ejemplo:WATSONX_APIKEY = os.environ.get("WATSONX_APIKEY", ""). - Desde la versión 0.2.0 de
ibm-watsonx-ai-cli, la forma recomendada de pasar la clave API u otros secretos necesarios para autenticarse en IBM watsonx.ai es utilizar el.envarchivo. El.envarchivo debe estar ubicado en la ruta desde la que se invocan los comandos cli. - La
distcarpeta que contiene la distribución del código fuente de la plantilla se crea localmente cuando se prepara el activo de extensión del paquete. A partir de la versión 0.3.0 deibm-watsonx-ai-cli, esta carpeta se elimina automáticamente después de que el contenido del servicio de IA se haya implementado correctamente.
Ejemplo de flujo de despliegue de un servicio de IA
Para desplegar plantillas de servicios AI utilizando ibm-watsonx-ai-cli, consulte este flujo de ejemplo:
Cree la plantilla en su IDE:
watsonx-ai template newAparecerá en pantalla una lista de las plantillas disponibles. Escriba el número asociado a la plantilla con la que desea trabajar. A continuación, escriba el nombre de la carpeta que desea crear.
Navegue hasta el directorio de plantillas:
cd <template directory> cp config.toml.example config.toml cp template.env .envPersonaliza el código de la plantilla y edita los archivos
config.toml.envy para actualizar los valores de los marcadores de posición.Pruebe el código de la plantilla:
watsonx-ai template invoke "<your query>"Crea un servicio:
watsonx-ai service newCuando se despliega el servicio,
ibm-watsonx-ai-clidevuelve el ID del despliegue. Si desea que este ID sea el ID de despliegue predeterminado cuando invoque el servicio desplegado, péguelo comodeployment_iden el archivoconfig.toml. Si no lo hace, deberá proporcionar el ID de despliegue cada vez que invoque su servicio desplegado.Probar el servicio
watsonx-ai service invoke "<your query>"
Si desea probar su servicio localmente utilizando una interfaz gráfica de usuario, instale la aplicación React UI. Para más información, consulte watsonx.ai AI Service UI app
Ejemplo de flujo para crear una aplicación basada en una plantilla de servicio de IA
Para crear aplicaciones basadas en plantillas de servicios de IA utilizando ibm-watsonx-ai-cli, consulte este flujo de ejemplo:
Crea una aplicación en tu IDE:
watsonx-ai app newEn la pantalla aparecerá una lista de las aplicaciones disponibles. Escriba el número asociado a la aplicación con la que desea trabajar. A continuación, escriba el nombre de la carpeta que desea crear.
Navegue hasta el directorio de aplicaciones y copie su archivo de variables de entorno:
cd <created folder with the app> cp template.env .envEdite el archivo
.envpara actualizar los valores de los marcadores de posición. Para elWATSONX_BASE_DEPLOYMENT_URL, utilice el URL al punto final de un servicio desplegado.Inicia la aplicación:
watsonx-ai app runAlternativamente, si desea realizar cambios en el código fuente de la aplicación mientras ésta se está ejecutando, inicie la aplicación en modo de desarrollo:
watsonx-ai app run --devSi una aplicación se ejecuta en modo de desarrollo, cada vez que se guardan los cambios la aplicación se recarga.
Ejemplo de flujo para ejecutar el eval comando
Utilice el eval comando para comprobar el rendimiento de un agente en un conjunto de datos específico. Puede incluir varios archivos de benchmarking en un solo eval comando. Los resultados se calculan por separado para cada archivo.
El eval comando proporciona varias métricas que se pueden utilizar simultáneamente para evaluar el rendimiento del agente. Para obtener más información sobre las métricas disponibles, ejecute:
watsonx-ai template eval --help
Para las métricas answer_similarityanswer_relevance y, puede utilizar un LLM como juez. Puede proporcionar el ID del modelo (el modelo debe estar disponible en su entorno de nube) o utilizar la llm_as_judge palabra clave (en este caso, se utiliza uno de los dos modelos predefinidos).
A continuación se muestra un ejemplo de uso del comando eval :
watsonx-ai template eval --tests test1.jsonl,test2.jsonl --metrics answer_similarity,answer_relevance --evaluator llm_as_judge
Aquí hay un único resultado para una 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
}
]
}
Más información
Para más información, consulte
- El archivo readme IBM watsonx.ai CLI para agentes en el repositorio PyPi ibm- watsonx -ai-cli.
- El archivo readme para desplegar agentes usando watsonx.ai en el repositorio Github watsonx -developer-hub
- El archivo readme para desplegar aplicaciones utilizando watsonx.ai en el repositorio Github watsonx -developer-hub