Configurar el modelo de pasarela con código

La puerta de enlace del modelo proporciona una única API LLM OpenAI-compatible como servicio, que actúa como proxy para el enrutamiento de las solicitudes a los proveedores de modelos.

Antes de empezar

  1. Como administrador de IBM Cloud o propietario de la cuenta, utilice las políticas de acceso de IAM para asignar permisos de administrador a los usuarios de todas las instancias de watsonx.ai Runtime para que puedan utilizar la puerta de enlace del modelo. Para obtener más información, consulte Configuración de grupos de acceso de IAM.

  2. Proporcione las credenciales para cada proveedor de modelos compatible que tenga previsto utilizar y configure las variables de entorno para todas sus claves.

    Exporta la clave API de IAM a la variable de entorno IBM_CLOUD_APIKEY.

    export IBM_CLOUD_APIKEY="xxxx" 
    
  3. Proporcione y vincule una instancia de IBM Secrets Manager para almacenar y gestionar de forma segura sus claves API, credenciales y valores de configuración para utilizar la puerta de enlace del modelo. Para configurarlo, consulte Creación de una Secrets Manager instancia. Si utiliza la CLI, sustituya <region> por ca-tor.

  4. Autorizar al watsonx.ai servicio de tiempo de ejecución para acceder Secrets Manager a. Asigne un rol SecretsReader de servicio o superior en la Secrets Manager instancia.

    El nombre del servicio para watsonx.ai runtime es pm-20. Para autorizar mediante la CLI, utilice el siguiente comando:

      ibmcloud login -a https://cloud.ibm.com --apikey ${IBM_CLOUD_APIKEY}
      ibmcloud iam authorization-policy-create SecretsReader \
          --source-service-name pm-20 \
          --target-service-name secrets-manager
    

    Para configurarlo mediante la interfaz de usuario, consulte Autorizar un IBM Cloud servicio para acceder a Secrets Manager.

Procedimiento

  1. Guarde los detalles de configuración de la tienda para los proveedores de modelos seleccionados en IBM Cloud Secrets Manager. Utilice los argumentos necesarios para cada proveedor para definir y crear secretos.

    Para crear un secreto, OpenAI, consulte el siguiente ejemplo:

    Defina los detalles de configuración secretos:

    {
        "apikey": "xxxx"
    }
    

    Crear secreto:

    # Set your API key
    export OPENAI_APIKEY="xxxx"
    
    # Create the secret in IBM Cloud Secrets Manager
    ibmcloud secrets-manager secret-create \
      --secret-type kv \
      --secret-name "openai-creds" \
      --secret-group-id default \
      --kv-data "$(jq -n \
        --arg name "openai-provider" \
        --arg apikey "{$OPENAI_APIKEY}" \
        '{apikey: $apikey}')" \
      --output json
    

    La siguiente tabla muestra los requisitos de configuración específicos para cada proveedor de modelos compatible. Para obtener más información, consulte la documentación sobre inferencia del proveedor correspondiente.

    Tabla 1. Configuraciones y puntos finales para proveedores de modelos compatibles
    Nombre de proveedor Argumentos necesarios Argumentos opcionales
    OpenAI apiKey base_url
    watsonx.ai apiKey
    project_id o space_id
    base_url
    auth_url
    api_version
    Azure OpenAI apiKey
    resource_name
    subscription_id
    resource_group_name
    account_name
    api_version
    Anthropic apiKey
    AWS Bedrock access_key_id
    secret_access_key
    region
    Cerebras apiKey
    NVIDIA NIM apiKey
    Gemini apiKey

    Establezca la variable de entorno SM_CRN en la ubicación remota donde se almacenan las credenciales de su proveedor. Por ejemplo, vea el siguiente comando:

      export SM_CRN="crn:v1:bluemix:public:secrets-manager:us-south:a/your-account-id:your-secret-id::"
    
  2. Utilice el IBM_CLOUD_APIKEY como un token de portador válido con la API de la puerta de enlace del modelo. Configure el proveedor utilizando la referencia secreta ejecutando el siguiente comando:

      curl -sS https://{region}.ml.cloud.ibm.com/ml/gateway<provider-endpoint> \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer ${IBM_CLOUD_APIKEY}" \
        -d "$(jq -n \
          --arg resource "${SM_CRN}" \
          --arg name "<custom-name-for-provider>" \
          '{name: $name, data_reference: {resource: $resource}}')"
    

    Por ejemplo, utilice el siguiente comando para configurar OpenAI como proveedor:

    curl -sS https://{region}.ml.cloud.ibm.com/ml/gateway/v1/providers/openai \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ${IBM_CLOUD_APIKEY}" \
      -d "$(jq -n \
        --arg resource "${SM_CRN}" \ #Location of the OpenAI provider credentials
        --arg name "openai-provider" \
        '{name: $name, data_reference: {resource: $resource}}')"
    
  3. Después de añadir un proveedor de modelos, puede habilitar los modelos utilizando el UUID del proveedor y el ID del modelo en la solicitud. El ID del modelo debe ser un identificador único existente que sea reconocido por el proveedor. Dado que algunos modelos están disponibles en varios proveedores, puede utilizar alias de modelos, que son nombres personalizados que hacen referencia a los modelos en lugar de utilizar sus ID. Por ejemplo, vea el siguiente comando:

    curl -X POST "https://{region}.ml.cloud.ibm.com/ml/gateway/v1/providers/${PROVIDER_UUID}/models" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ${IBM_CLOUD_APIKEY}" \
      -d '{ "alias": "<custom_name>", "id": "<model_id>"}'
    

    Para obtener más información sobre cada proveedor de modelos compatible, consulte la documentación de la API de la pasarela de modelos en IBM Cloud.

Próximos pasos

Puede enviar solicitudes a modelos a través de la pasarela de modelos. Para más detalles, véase Modelos de pasarelas de inferenciación.