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 archivo.env. El archivo.envdebe encontrarse en la ruta desde la que se llaman los comandos cli. - La carpeta
distque 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 una vez que el contenido del servicio AI se ha desplegado 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.tomlPersonalice el código de la plantilla y edite el archivo
config.tomlpara actualizar el marcador de posición valuesFor para facilitar el acceso a algunas de las variables necesarias, consulte la página Acceso para desarrolladores.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 acceder fácilmente a algunas de las variables necesarias, consulte la página Acceso para desarrolladores. Para elWATSONX_BASE_DEPLOYMENT_URL, utilice el URL al punto final de un servicio desplegado.Inicie la app:
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 ejecución del comando eval
Utilice el comando eval para comprobar el rendimiento de un agente en un conjunto de datos específico. Puede incluir varios archivos de evaluación comparativa en un único comando eval . Los resultados se calculan por separado para cada archivo.
El comando eval proporciona varias métricas que pueden utilizarse 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_similarity y answer_relevance , 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 palabra clave llm_as_judge (en este caso, se utiliza uno de los dos modelos predefinidos).
He aquí 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
He aquí 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