Поделиться через


"Быстрый старт: Пользовательские категории (стандартный режим) (предварительный просмотр)"

Follow this guide to use Azure AI Content Safety Custom categories (standard) REST API to create your own content categories for your use case and train Azure AI Content Safety to detect them in new text content.

Дополнительные сведения о пользовательских категориях см. на странице концепции пользовательских категорий. Сведения о ограничениях ввода API см. в разделе "Требования к входным данным" в разделе "Обзор".

Внимание

Эта функция доступна только в определенных регионах Azure. См. доступность региона.

Внимание

Разрешить достаточно времени для обучения модели

Полный процесс обучения пользовательских категорий может занять от пяти часов до десяти часов. Запланируйте конвейер модерации соответствующим образом.

Предварительные условия

Настройка

Follow these steps to use the Content Safety try it out page:

  1. Перейдите в Azure AI Foundry и перейдите к проекту или центру. Затем откройте вкладку "Безопасность и безопасность" на левой панели навигации и выберите вкладку "Попробовать".
  2. На странице "Попробовать" можно поэкспериментировать с различными функциями безопасности содержимого, такими как текст и содержимое изображения, с помощью настраиваемых пороговых значений для фильтрации неуместного или вредного содержимого.

Снимок экрана: страница пробной версии для обеспечения безопасности содержимого.

Use custom categories

This feature lets you create and train your own custom content categories and scan text for matches.

  1. Select the Custom categories panel.
  2. Select Add a new category to open a dialog box. Enter your category name and a text description, and connect a blob storage container with text training data. Select Create and train.
  3. Select a category and enter your sample input text, and select Run test. The service returns the custom category result.

For more information, see the Custom categories conceptual guide.

Предварительные условия

  • подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure на портале Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите перейти к ресурсу. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Скопируйте конечную точку и любой из ключевых значений в временное расположение для последующего использования.
  • Also create an Azure blob storage container where you'll keep your training annotation file.
  • Установлена одна из следующих программ:

Подготовьте свои обучающие данные

To train a custom category, you need example text data that represents the category you want to detect. В этом руководстве можно использовать примеры данных. Предоставленный аннотационный файл содержит тексты с подсказками о выживании в условиях кемпинга и дикой природы. Обученная модель научится обнаруживать этот тип содержимого в новых текстовых данных.

Tip

Советы по созданию собственного набора данных см. в руководстве по созданию собственного набора данных.

  1. Скачайте пример текстового файла данных из репозитория GitHub.
  2. Загрузите файл .jsonl в контейнер блоков вашей учетной записи хранилища Azure. Then copy the blob URL to a temporary location for later use.

Внимание

Учетная запись хранения пользователя настраивается как иерархическая учетная запись пространства имен, которая не может поддерживаться пользовательскими категориями. Попробуйте использовать обычную учетную запись хранения. Например, Blob URL-адрес не может быть разделен на два уровня, например example/example1/, и должен иметь только один слой. Дополнительные сведения см. в документации: иерархическое пространство имен Azure Data Lake Storage — служба хранилища Azure.

Предоставление доступа к хранилищу

Next, you need to give your Content Safety resource access to read from the Azure Storage resource. Enable system-assigned Managed identity for the Azure AI Content Safety instance and assign the role of Storage Blob Data Contributor/Owner to the identity:

Внимание

Only Storage Blob Data Contributor or Storage Blob Data Owner are valid roles to proceed.

  1. Enable managed identity for the Azure AI Content Safety instance.

    Снимок экрана портала Azure с включённым управляемым удостоверением.

  2. Assign the role of Storage Blob Data Contributor/Owner to the Managed identity. Any roles highlighted below should work.

    Снимок экрана: экран добавления назначения ролей в портал Azure.

    Снимок экрана назначенных ролей в портале Azure.

    Screenshot of the managed identity role.

Create and train a custom category

В приведенной ниже команде замените <your_api_key>и <your_endpoint>другие необходимые параметры собственными значениями. Затем введите каждую команду в окне терминала и запустите ее.

Создание новой версии категории

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"categoryName\": \"survival-advice\",
            \"definition\": \"text prompts about survival advice in camping/wilderness situations\",
            \"sampleBlobUrl\": \"https://<your-azure-storage-url>/example-container/survival-advice.jsonl\"
        }"

Tip

Every time you change your category name, definition or samples, a new version will be created. Номер версии можно использовать для трассировки до предыдущих версий. Запомните этот номер версии, так как он будет необходим в URL-адресе для следующего этапа настройки пользовательских категорий.

API-запрос

Поле Описание Пример значения
categoryName Имя категории или раздела, к к который относится запрос. советы по выживанию
definition Краткое описание типа контента для категории. text prompts about survival advice in camping/wilderness situations
sampleBlobUrl URL-адрес для доступа к образцу JSONL-файла, содержащего примеры данных для категории. Ссылка

Ответ API

Поле Описание Пример значения
categoryName Имя категории или раздела, к который относится ответ. советы по выживанию
definition Краткое описание типа контента для категории. text prompts about survival advice in camping/wilderness situations
sampleBlobUrl URL-адрес для доступа к образцу JSONL-файла, содержащего примеры данных для категории. Ссылка
sampleBlobSnapshotUrl URL-адрес снимка образца файла JSONL, предоставляющий доступ к определенной версии данных. URL-адрес снимка
version Номер версии данных категории. 1
createdTime Временная метка в момент создания данных категории. 2024-10-28T22:06:59.462698Z
status Текущее состояние обработки данных категории. Succeeded

Start the category build process

Замените <your_api_key и >your_endpoint<> собственными значениями, а также добавьте номер версии в URL-адрес, полученный на последнем шаге. Разрешить достаточно времени для обучения модели: сквозное выполнение обучения пользовательских категорий может занять от пяти часов до десяти часов. Запланируйте конвейер модерации соответствующим образом. После получения ответа сохраните идентификатор операции (который называется id) во временном расположении. Этот идентификатор будет необходим для получения состояния сборки с помощью API получения состояния в следующем разделе.

curl -X POST "<your_endpoint>/contentsafety/text/categories/survival-advice:build?api-version=2024-09-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Ответ API

Поле Описание Пример значения
operation id Уникальный идентификатор для получения состояния сборки b6c69dc1-2338-484e-85a5b-xxxxxxxxxxxx
status Текущее состояние запроса Succeeded

Get the category build status

Чтобы получить состояние, используйте id, полученный из предыдущего ответа API, и вставьте его в путь запроса API ниже.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Ответ API

Поле Описание Пример значения
operation id Уникальный идентификатор для получения состояния сборки b6c69dc1-2338-484e-855b-xxxxxxxxxxxx
status Текущее состояние запроса Succeeded

Анализ текста с помощью настраиваемой категории

Выполните следующую команду, чтобы проанализировать текст с помощью настраиваемой категории. Замените <your_api_key> и <your_endpoint> собственными значениями.

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"text\": \"<Example text to analyze>\",
            \"categoryName\": \"survival-advice\", 
            \"version\": 1
        }"

API-запрос

Поле Описание
text Текстовое содержимое или сообщение, предназначенное для обнаружения категорий
categoryName Имя категории, в которой должен быть обнаружен текст
version Номер версии категории

Ответ API

Поле Описание Пример значения
customCategoryAnalysis Объект, содержащий результат анализа для категории.
detected Указывает, обнаружена ли указанная категория. false

Операции с другими пользовательскими категориями

Не забудьте заменить заполнители ниже фактическими значениями ключа API, конечной точки и определенного содержимого (имя категории, определение и т. д.). Эти примеры помогают управлять настраиваемыми категориями в вашей учетной записи.

Внимание

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Получите настраиваемую категорию или ее конкретную версию.

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

List categories of their latest versions

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Удаление настраиваемой категории или определенной версии ее

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"