Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция
Область применения:
Databricks SQL
Databricks Runtime
Функция ai_classify() классифицирует текстовое содержимое в соответствии с предоставленными пользовательскими метками. Вы можете использовать простые имена меток для базовой классификации или добавить описания меток и инструкции для повышения точности для таких вариантов использования, как маршрутизация поддержки клиентов, классификация документов и анализ содержимого.
Функция принимает текст или VARIANT выходные данные из других функций ИИ, таких как ai_parse_documentвключение составных рабочих процессов.
Сведения о версии пользовательского интерфейса для итерации ai_classifyсм. в разделе "Классификация".
Безопасность данных
Данные документа обрабатываются в периметре безопасности Databricks. Databricks не хранит параметры, передаваемые в вызовы функций AI, но сохраняет детали запуска метаданных, такие как используемая версия Databricks Runtime.
Требования
Лицензия Apache 2.0
Базовые модели, которые могут использоваться в настоящее время, лицензируются в соответствии с лицензией Apache 2.0, авторским правом © Apache Software Foundation. Клиенты отвечают за обеспечение соответствия применимым лицензиям модели.
Databricks рекомендует просматривать эти лицензии, чтобы обеспечить соответствие любым применимым условиям. Если модели появляются в будущем, которые лучше работают в соответствии с внутренними тестами Databricks, Databricks может изменить модель (и список применимых лицензий, предоставленных на этой странице).
Модель, работающая с этой функцией, становится доступной с помощью API модели обслуживания модели. Сведения о моделях, доступных в Databricks, и лицензиях и политиках, которые управляют использованием этих моделей, см. в применимых условиях модели.
Если модели появляются, которые лучше работают в соответствии с внутренними тестами Azure Databricks, Databricks может изменить модели и обновить документацию.
Эта функция доступна только в некоторых регионах, см. сведения о доступности функций ИИ.
Для рабочих областей с надстройкой повышенной безопасности и соответствия требованиям
- См. региональные поддержку
ai_classifyсоответствующего стандарта соответствия. - Сведения о включении Azure Databricks в рабочей области см. в статье "Управление Azure Databricks предварительной версии".
- См. региональные поддержку
Эта функция недоступна в хранилищах Pro или Classic SQL.
Требуется Databricks Runtime 15.4 LTS и выше. Для лучшей производительности и доступа к новейшим функциям рекомендуется Databricks Runtime 18.2 и выше.
Бессерверные вычисления необходимы для записных книжек и рабочих процессов Databricks.
Проверьте страницу цен на Databricks SQL.
Tip
Databricks рекомендует использовать версию 2.1 для ai_classify. Версия 1.0 — это устаревший интерфейс, который не поддерживает эти возможности и не рекомендуется для новых рабочих нагрузок или рабочих нагрузок.
Версия 2.0 поддерживает:
- Описания меток для повышения точности
- Классификация нескольких меток
- Глобальные инструкции
- До 500 меток по сравнению с 20 в версии 1.0
-
VARIANTвходные данные из вышестоящих функций ИИ, таких какai_parse_document - Возвращает структурированную
VARIANTинформацию об ошибке
Версия 2.1 также поддерживает:
- Оценки достоверности для каждой возвращаемой метки с включенным
enableConfidenceScores - Рационализаторы, объясняющие каждую возвращаемую метку, включенную с поддержкой
enableRationales
В версии 2.1 каждая классификация response является объектом для каждой метки с ключом value вместо обычной строки меток. Это изменение формы выходных данных применяется ко всем вызовам версии 2.1, даже если новые параметры отключены. Переход с версии 2.0 на 2.1 не совместим с выходными данными. Обновите запросы и подчиненный код, чтобы считывать метку из value ключа, а не читать ее напрямую.
Чтобы закрепить версию явно, передайте options => map('version', '2.1').
Синтаксис
Версия 2.1 (рекомендуется)
ai_classify(content, labels [, options])
Версия 2
ai_classify(content, labels [, options])
Версия 1 (устаревшая версия)
ai_classify(content, labels [, options])
Аргументы
Версия 2.1 (рекомендуется)
content: ВыражениеVARIANTилиSTRING. Принимает любую из них:- Необработанный текст в виде
STRING - Созданная
VARIANTдругой функцией ИИ (напримерai_parse_document, илиai_extract)
- Необработанный текст в виде
labelsSTRING: выражение, определяющее метки классификации. Это может быть строковый литерал или любое выражение SQL, которое оценивается какSTRINGстолбец таблицы Delta. Метки могут быть следующими:- Простые метки: массив 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 меток. Сведения о таксономиях размером более 500 меток см. в классификации с метками 500+.- Простые метки: массив JSON имен меток.
options: необязательный,MAP<STRING, STRING>содержащий параметры конфигурации:-
version: переключение версий для поддержки миграции ("1.0","2.0"или"2.1"). Значение по умолчанию основано на типах входных данных, но возвращается обратно"1.0". -
instructions: глобальное описание задачи и домена для улучшения качества классификации. Должно быть меньше 20 000 символов. -
multilabel: устанавливается для"true"возврата нескольких меток при применении нескольких категорий. По умолчанию используется"false"классификация одноклеек. -
enableConfidenceScores: установите для"true"включенияconfidence_score(0–1) для каждой возвращаемой метки. Требуется версия"2.1". По умолчанию —"false". -
enableRationales: задайте для"true"включения короткого объяснения каждой возвращаемой метки, заземленной в входном тексте. Требуется версия"2.1". По умолчанию —"false".
-
Версия 2
content: ВыражениеVARIANTилиSTRING. Принимает любую из них:- Необработанный текст в виде
STRING - Созданная
VARIANTдругой функцией ИИ (напримерai_parse_document, илиai_extract)
- Необработанный текст в виде
labelsSTRING: выражение, определяющее метки классификации. Это может быть строковый литерал или любое выражение SQL, которое оценивается какSTRINGстолбец таблицы Delta. Метки могут быть следующими:- Простые метки: массив 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 меток. Сведения о таксономиях размером более 500 меток см. в классификации с метками 500+.- Простые метки: массив JSON имен меток.
options: необязательный,MAP<STRING, STRING>содержащий параметры конфигурации:-
version: параметр версии для поддержки миграции ("1.0"для поведения"2.0"версии 1 для поведения версии 2). Значение по умолчанию основано на типах входных данных, но возвращается обратно"1.0". -
instructions: глобальное описание задачи и домена для улучшения качества классификации. Должно быть меньше 20 000 символов. -
multilabel: устанавливается для"true"возврата нескольких меток при применении нескольких категорий. По умолчанию используется"false"классификация одноклеек.
-
Версия 1 (устаревшая версия)
contentSTRING: выражение, содержащее текст для классификации.labelsARRAY<STRING>: литерал с ожидаемыми метками классификации выходных данных. Должен содержать не менее 2 элементов и не более 20 элементов. Каждая метка должна быть 1–50 символами.options: необязательный,MAP<STRING, STRING>содержащий параметры конфигурации:-
version: параметр версии для поддержки миграции ("1.0"для поведения"2.0"версии 1 для поведения версии 2). Значение по умолчанию основано на типах входных данных, но возвращается обратно"1.0".
-
Возвраты
Версия 2.1 (рекомендуется)
VARIANT Возвращает содержащийся:
{
"response": [{ "value": "label_name", "confidence_score": 0.97, "rationale": "Short justification for the label." }],
"metadata": {
"version": "2.1"
},
"error_message": null // null on success, or error message on failure
}
Каждый элемент является response объектом для каждой метки с ключом value , а не строкой простой метки. При enableConfidenceScores этом "true"каждый объект также включает в confidence_score себя (0–1). Когда enableRationales это "true", каждый объект также включает в rationaleсебя . При включении обоих параметров порядок ключей в каждом объекте имеет valueзначение , confidence_scoreа затем rationale.
Поле содержит следующее response :
- Режим одноклейки (по умолчанию): массив с одним элементом, содержащим лучшую метку сопоставления
-
Режим нескольких меток (
multilabel: "true"): массив с несколькими метками при применении нескольких категорий - Имена меток точно соответствуют указанным в параметре
labels
Возвращает значение NULLcontent, если NULL содержимое не может быть классифицировано.
Версия 2
VARIANT Возвращает содержащийся:
{
"response": ["label_name"], // Array with single label (or multiple if multilabel=true)
"metadata": {
"version": "2.0"
},
"error_message": null // null on success, or error message on failure
}
Поле содержит следующее response :
- Режим одноклейки (по умолчанию): массив с одним элементом, содержащим лучшую метку сопоставления
-
Режим нескольких меток (
multilabel: "true"): массив с несколькими метками при применении нескольких категорий - Имена меток точно соответствуют указанным в параметре
labels
Возвращает значение NULLcontent, если NULL содержимое не может быть классифицировано.
Версия 1 (устаревшая версия)
STRINGВозвращает значение . Значение соответствует одной из строк, предоставленных в аргументе labels .
Возвращает значение NULLcontent, если NULL содержимое не может быть классифицировано.
Примеры
Версия 2.1 (рекомендуется)
Простые метки — только имена меток
В версии 2.1 каждая классификация является объектом для каждой метки с ключом value вместо простой строки, даже если новые параметры отключены.
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]',
MAP('version', '2.1')
);
{
"response": [{"value": "urgent"}],
"metadata": {
"version": "2.1"
},
"error_message": null
}
С оценкой достоверности
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]',
MAP('version', '2.1', 'enableConfidenceScores', 'true')
);
{
"response": [{"value": "urgent", "confidence_score": 0.97}],
"metadata": {
"version": "2.1"
},
"error_message": null
}
С рационализаторами
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]',
MAP('version', '2.1', 'enableRationales', 'true')
);
{
"response": [{"value": "urgent", "rationale": "A leaked password is a security incident requiring immediate action."}],
"metadata": {
"version": "2.1"
},
"error_message": null
}
С оценкой достоверности и обоснованием (многоэтапные)
> SELECT ai_classify(
'Customer wants refund and reports product arrived broken.',
'{
"billing_issue": "Payment or refund requests",
"product_defect": "Damaged or malfunctioning items"
}',
MAP('version', '2.1', 'multilabel', 'true', 'enableConfidenceScores', 'true', 'enableRationales', 'true')
);
{
"response": [
{"value": "billing_issue", "confidence_score": 0.91, "rationale": "Customer explicitly requests a refund."},
{"value": "product_defect", "confidence_score": 0.88, "rationale": "Reports the product arrived broken."}
],
"metadata": {
"version": "2.1"
},
"error_message": 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('version', '2.1', 'instructions', 'Customer support ticket classification.')
) AS ticket_category
FROM parsed_docs;
Классификация пакетной службы
> SELECT
description,
ai_classify(
description,
'["clothing", "shoes", "accessories", "furniture", "electronics"]',
MAP('version', '2.1')
) AS category
FROM products
LIMIT 10;
Классификация с помощью меток 500+
Чтобы классифицировать более 500 меток, рекомендуется внедрить документы и метки, получить верхние метки k для каждого документа, а затем запустить ai_classify в меньшем подмножестве.
См . руководство. Классификация документов с 500+ метками для пошагового руководства.
Версия 2
Простые метки — только имена меток
> SELECT ai_classify(
'My password is leaked.',
'["urgent", "not_urgent"]'
);
{
"response": ["urgent"],
"metadata": {
"version": "2.0"
},
"error_message": 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"],
"metadata": {
"version": "2.0"
},
"error_message": null
}
Метки из разностной таблицы
Передайте метки из таблицы Delta, преобразовав их в строку JSON. Например, учитывая таблицу меток со схемой news_topics(topic STRING, description STRING), можно передать метки ai_classify следующим образом:
SELECT
ai_classify(
"Leicester City Wins Premier League Title at 5000-1 Odds",
l.labels,
MAP('version', '2.0')
) AS classification
FROM (
SELECT to_json(map_from_entries(collect_list(struct(topic, description)))) AS labels
FROM news_topics
) l;
Использование глобальных инструкций
> 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"],
"metadata": {
"version": "2.0"
},
"error_message": 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('version', '2.0','multilabel', 'true')
);
{
"response": ["billing_issue", "product_defect"],
"metadata": {
"version": "2.0"
},
"error_message": null
}
Версия 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.1 (рекомендуется)
Ограничения версии 2.1:
Эта функция недоступна в Azure Databricks классической версии SQL.
Эту функцию нельзя использовать с представлениями.
Имена меток должны иметь 1–100 символов.
Параметр
labelsдолжен содержать от 2 до 500 уникальных меток.Описания меток должны быть 0–1000 символов.
Максимальный общий размер контекста составляет 128 000 маркеров.
Версия 2
Ограничения версии 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 символов).