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 Poetry debe estar instalada en el entorno local. Para instalar Poetry, 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.

Importante:
  • Algunas plantillas requieren un archivo de configuración correctamente preparado (config.toml). Si una plantilla descargada contiene config.toml con 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 .env archivo. El .env archivo debe estar ubicado en la ruta desde la que se invocan los comandos cli.
  • La dist carpeta 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 de ibm-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:

  1. Cree la plantilla en su IDE:

    watsonx-ai template new
    

    Aparecerá 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.

  2. Navegue hasta el directorio de plantillas:

    cd <template directory>
    cp config.toml.example config.toml
    cp template.env .env
    
  3. Personaliza el código de la plantilla y edita los archivos config.toml .env y para actualizar los valores de los marcadores de posición.

  4. Pruebe el código de la plantilla:

    watsonx-ai template invoke "<your query>"
    
  5. Crea un servicio:

    watsonx-ai service new
    

    Cuando se despliega el servicio, ibm-watsonx-ai-cli devuelve el ID del despliegue. Si desea que este ID sea el ID de despliegue predeterminado cuando invoque el servicio desplegado, péguelo como deployment_id en el archivo config.toml . Si no lo hace, deberá proporcionar el ID de despliegue cada vez que invoque su servicio desplegado.

  6. Probar el servicio

    watsonx-ai service invoke "<your query>"
    
Nota:

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:

  1. Crea una aplicación en tu IDE:

    watsonx-ai app new
    

    En 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.

  2. Navegue hasta el directorio de aplicaciones y copie su archivo de variables de entorno:

    cd <created folder with the app>
    cp template.env .env
    
  3. Edite el archivo .env para actualizar los valores de los marcadores de posición. Para el WATSONX_BASE_DEPLOYMENT_URL, utilice el URL al punto final de un servicio desplegado.

  4. Inicia la aplicación:

    watsonx-ai app run
    

    Alternativamente, 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 --dev
    

    Si 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