Функция ai_classify

Область применения:отметка 'Да' Databricks SQL отметка 'Да' Databricks Runtime

Внимание

Эта функция доступна в общедоступной предварительной версии и соответствии HIPAA.

Во время предварительной версии:

Функция ai_classify() классифицирует текстовое содержимое в соответствии с предоставленными пользовательскими метками. Вы можете использовать простые имена меток для базовой классификации или добавить описания меток и инструкции для повышения точности для таких вариантов использования, как маршрутизация поддержки клиентов, классификация документов и анализ содержимого.

Функция принимает текст или VARIANT выходные данные из других функций ИИ, таких как ai_parse_documentвключение составных рабочих процессов.

Сведения о версии пользовательского интерфейса для итерации ai_classifyсм. в разделе "Классификация".

Требования

Лицензия Apache 2.0

Базовые модели, которые могут использоваться в настоящее время, лицензируются в соответствии с лицензией Apache 2.0, авторским правом © Apache Software Foundation. Клиенты отвечают за обеспечение соответствия применимым лицензиям модели.

Databricks рекомендует просматривать эти лицензии, чтобы обеспечить соответствие любым применимым условиям. Если модели появляются в будущем, которые лучше работают в соответствии с внутренними тестами Databricks, Databricks может изменить модель (и список применимых лицензий, предоставленных на этой странице).

Модель, работающая с этой функцией, становится доступной с помощью API модели обслуживания модели. Сведения о моделях, доступных в Databricks, и лицензиях и политиках, которые управляют использованием этих моделей, см. в применимых условиях модели.

Если модели появляются в будущем, которые лучше работают в соответствии с внутренними тестами Databricks, Databricks может изменить модели и обновить документацию.

  • Эта функция доступна только в некоторых регионах, см. сведения о доступности функций ИИ.
  • Эта функция недоступна в Azure Databricks классической версии SQL.
  • Проверьте страницу цен на Databricks SQL.
  • В Databricks Runtime 15.1 и более поздних версиях эта функция поддерживается в записных книжках Databricks, включая записные книжки, которые выполняются как задача в рабочем процессе Databricks.
  • Для повышения производительности рабочих нагрузок пакетного вывода требуется Среда выполнения Databricks Runtime 15.4 ML LTS.

Синтаксис

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

Версия 1

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

Аргументы

  • content: ВыражениеVARIANT или STRING. Принимает любую из них:

    • Необработанный текст в виде STRING
    • Созданная VARIANT другой функцией ИИ (например ai_parse_document , или ai_extract)
  • labels: литерал STRING , определяющий метки классификации. Метки могут быть следующими:

    • Простые метки: массив JSON имен меток.
      ["urgent", "not_urgent"]
      
    • Метки с описаниями: имена меток сопоставления объектов JSON с описаниями. Описания меток должны быть 0–1000 символов.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    Каждая метка должна содержать 1–100 символов. labels должен содержать не менее 2 меток и не более 500 меток.

  • options: необязательный, MAP<STRING, STRING> содержащий параметры конфигурации:

    • version: параметр версии для поддержки миграции ("1.0" для поведения "2.0" версии 1 для поведения версии 2). Значение по умолчанию основано на типах входных данных, но будет возвращаться к "1.0".
    • instructions: глобальное описание задачи и домена для улучшения качества классификации. Должно быть меньше 20 000 символов.
    • multilabel: устанавливается для "true" возврата нескольких меток при применении нескольких категорий. По умолчанию используется "false" классификация одноклеек.

Версия 1

  • content STRING: выражение, содержащее текст для классификации.

  • labels ARRAY<STRING>: литерал с ожидаемыми метками классификации выходных данных. Должен содержать не менее 2 элементов и не более 20 элементов. Каждая метка должна быть 1–50 символами.

  • options: необязательный, MAP<STRING, STRING> содержащий параметры конфигурации:

    • version: параметр версии для поддержки миграции ("1.0" для поведения "2.0" версии 1 для поведения версии 2). Значение по умолчанию основано на типах входных данных, но будет возвращаться к "1.0".

Возвраты

VARIANT Возвращает содержащийся:

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

Поле содержит следующее response :

  • Режим одноклейки (по умолчанию): массив с одним элементом, содержащим лучшую метку сопоставления
  • Режим нескольких меток (multilabel: "true"): массив с несколькими метками при применении нескольких категорий
  • Имена меток точно соответствуют указанным в параметре labels

Возвращает значение NULLcontent, если NULL содержимое не может быть классифицировано.

Версия 1

STRINGВозвращает значение . Значение соответствует одной из строк, предоставленных в аргументе labels .

Возвращает значение NULLcontent, если NULL содержимое не может быть классифицировано.

Примеры

Простые метки — только имена меток

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

Метки с описаниями

> 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
 }

Использование глобальных инструкций

> 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
 }

Классификация нескольких меток

> 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
 }

Возможность создания с помощью 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;

Классификация пакетной службы

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

Версия 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;

Ограничения

Ограничения версии 2.

  • Эта функция недоступна в Azure Databricks классической версии SQL.

  • Эту функцию нельзя использовать с представлениями.

  • Имена меток должны иметь 1–100 символов.

  • Параметр labels должен содержать от 2 до 500 уникальных меток.

  • Описания меток должны быть 0–1000 символов.

  • Максимальный общий размер контекста составляет 128 000 маркеров.

Версия 1

Ограничения версии 1:

  • Эта функция недоступна в Azure Databricks классической версии SQL.

  • Эту функцию нельзя использовать с представлениями.

  • Имена меток должны иметь 1–50 символов.

  • Массив labels должен содержать от 2 до 20 меток.

  • Входные content данные должны быть меньше 128 000 маркеров (около 300 000 символов).