Compartir vía


ai_classifyFunción

Se aplica a:marcado como sí Databricks SQL marcado como sí Databricks Runtime

Importante

Esta funcionalidad está en versión preliminar pública y compatible con HIPAA.

Durante la versión preliminar:

La ai_classify() función clasifica el contenido de texto según las etiquetas personalizadas que proporcione. Puede usar nombres de etiqueta simples para la clasificación básica o agregar descripciones de etiquetas e instrucciones para mejorar la precisión de los casos de uso, como el enrutamiento de soporte técnico al cliente, la categorización de documentos y el análisis de contenido.

La función acepta texto o VARIANT salida de otras funciones de IA como ai_parse_document, lo que permite flujos de trabajo que se pueden componer.

Para que una versión de la interfaz de usuario itera en ai_classify, consulte Clasificación.

Requisitos

Licencia de Apache 2.0

Los modelos subyacentes que se pueden usar en este momento tienen licencia bajo la licencia de Apache 2.0, Copyright © The Apache Software Foundation. Los clientes son responsables de garantizar el cumplimiento de las licencias de modelo aplicables.

Databricks recomienda revisar estas licencias para garantizar el cumplimiento de los términos aplicables. Si los modelos surgen en el futuro que funcionan mejor según las pruebas comparativas internas de Databricks, Databricks podría cambiar el modelo (y la lista de licencias aplicables proporcionadas en esta página).

El modelo que alimenta esta función está disponible mediante las API de modelo de Model Serving Foundation. Consulte Términos aplicables para desarrolladores de modelos para obtener información sobre qué modelos están disponibles en Databricks y las licencias y directivas que rigen el uso de esos modelos.

Si los modelos surgen en el futuro que funcionan mejor según las pruebas comparativas internas de Databricks, Databricks puede cambiar los modelos y actualizar la documentación.

  • Esta función solo está disponible en algunas regiones, consulte Disponibilidad de funciones de IA.
  • Esta función no está disponible en Azure Databricks SQL Classic.
  • Consulte la página de precios de Databricks SQL.
  • En Databricks Runtime 15.1 y versiones posteriores, esta función se admite en cuadernos de Databricks, incluidos los cuadernos que se ejecutan como una tarea en un flujo de trabajo de Databricks.
  • Las cargas de trabajo de inferencia por lotes requieren Databricks Runtime 15.4 ML LTS para mejorar el rendimiento.

Sintaxis

ai_classify(
    content VARIANT | STRING,
    labels STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

Versión 1

ai_classify(
    content STRING,
    labels ARRAY<STRING>,
    [options MAP<STRING, STRING>]
) RETURNS STRING

Argumentos

  • content: una expresión VARIANT o STRING. Acepta cualquiera de:

  • labels: literal STRING que define las etiquetas de clasificación. Las etiquetas pueden ser:

    • Etiquetas simples: una matriz JSON de nombres de etiqueta.
      ["urgent", "not_urgent"]
      
    • Etiquetas con descripciones: un nombre de etiqueta de asignación de objetos JSON a descripciones. Las descripciones de etiquetas deben tener entre 0 y 1000 caracteres.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Cada etiqueta debe tener entre 1 y 100 caracteres. labels debe contener al menos 2 etiquetas y no más de 500 etiquetas.

  • options: una opción que MAP<STRING, STRING> contiene las opciones de configuración:

    • version: cambio de versión para admitir la migración ("1.0" para el comportamiento de la versión 1, "2.0" para el comportamiento de la versión 2). El valor predeterminado se basa en los tipos de entrada, pero se revertirá a "1.0".
    • instructions: descripción global de la tarea y el dominio para mejorar la calidad de la clasificación. Debe tener menos de 20 000 caracteres.
    • multilabel: se establece en "true" para devolver varias etiquetas cuando se aplican varias categorías. El valor predeterminado es "false" (clasificación de etiqueta única).

Versión 1

  • content STRING: expresión que contiene el texto que se va a clasificar.

  • labels ARRAY<STRING>: literal con las etiquetas de clasificación de salida esperadas. Debe contener al menos 2 y no más de 20 elementos. Cada etiqueta debe tener entre 1 y 50 caracteres.

  • options: una opción que MAP<STRING, STRING> contiene las opciones de configuración:

    • version: cambio de versión para admitir la migración ("1.0" para el comportamiento de la versión 1, "2.0" para el comportamiento de la versión 2). El valor predeterminado se basa en los tipos de entrada, pero se revertirá a "1.0".

Devoluciones

Devuelve un VARIANT objeto que contiene:

{
  "response": ["label_name"], // Array with single label (or multiple if multilabel=true)
  "error_message": null // null on success, or error message on failure
}

El response campo contiene:

  • Modo de etiqueta única (valor predeterminado): matriz con un elemento que contiene la mejor etiqueta coincidente
  • Modo de varias etiquetas (multilabel: "true"): matriz con varias etiquetas cuando se aplican varias categorías
  • Los nombres de etiqueta coinciden exactamente con los proporcionados en el labels parámetro

Devuelve NULL si content es NULL o si el contenido no se puede clasificar.

Versión 1

Devuelve un STRINGobjeto . El valor coincide con una de las cadenas proporcionadas en el argumento labels.

Devuelve NULL si content es NULL o si el contenido no se puede clasificar.

Ejemplos

Etiquetas simples: solo nombres de etiqueta

> SELECT ai_classify(
    'My password is leaked.',
    '["urgent", "not_urgent"]'
  );
 {
   "response": ["urgent"],
   "error": null
 }

Etiquetas con descripciones

> SELECT ai_classify(
    'Customer cannot complete checkout due to payment processing error.',
    '{
      "billing_error": "Payment, invoice, or refund issues",
      "product_defect": "Any malfunction, bug, or breakage",
      "account_issue": "Login failures, password resets",
      "feature_request": "Customer suggestions for improvements"
    }'
  );
 {
   "response": ["billing_error"],
   "error": null
 }

Uso de instrucciones globales

> SELECT ai_classify(
    'User reports app crashes on startup after update.',
    '["critical", "high", "medium", "low"]',
    MAP('instructions', 'Classify bug severity based on user impact and frequency.')
  );
 {
   "response": ["critical"],
   "error": null
 }

Clasificación de varias etiquetas

> SELECT ai_classify(
    'Customer wants refund and reports product arrived broken.',
    '{
      "billing_issue": "Payment or refund requests",
      "product_defect": "Damaged or malfunctioning items",
      "shipping_issue": "Delivery problems"
    }',
    MAP('multilabel', 'true')
  );
 {
   "response": ["billing_issue", "product_defect"],
   "error": null
 }

Capacidad de redacción con ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/support/tickets/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_classify(
      parsed_content,
      '["billing_error", "product_defect", "account_issue", "feature_request"]',
      MAP('instructions', 'Customer support ticket classification.')
    ) AS ticket_category
  FROM parsed_docs;

Clasificación por lotes

> SELECT
    description,
    ai_classify(
      description,
      '["clothing", "shoes", "accessories", "furniture", "electronics"]'
    ) AS category
  FROM products
  LIMIT 10;

Versión 1

> SELECT ai_classify("My password is leaked.", ARRAY("urgent", "not urgent"));
  urgent

> SELECT
    description,
    ai_classify(description, ARRAY('clothing', 'shoes', 'accessories', 'furniture')) AS category
  FROM
    products
  LIMIT 10;

Limitaciones

Limitaciones de la versión 2:

  • Esta función no está disponible en Azure Databricks SQL Classic.

  • Esta función no se puede usar con Views.

  • Los nombres de etiqueta deben tener entre 1 y 100 caracteres cada uno.

  • El labels parámetro debe contener entre 2 y 500 etiquetas únicas.

  • Las descripciones de etiquetas deben tener entre 0 y 1000 caracteres cada una.

  • El tamaño de contexto total máximo es de 128 000 tokens.

Versión 1

Limitaciones de la versión 1:

  • Esta función no está disponible en Azure Databricks SQL Classic.

  • Esta función no se puede usar con Views.

  • Los nombres de etiqueta deben tener entre 1 y 50 caracteres.

  • La labels matriz debe contener entre 2 y 20 etiquetas.

  • La content entrada debe tener menos de 128 000 tokens (unos 300 000 caracteres).