Краткое руководство. Анализ текстового содержимого

Приступая к работе с Студией безопасности содержимого, REST API или клиентскими пакетами SDK для выполнения базовой модерации текста. Служба безопасности содержимого Azure предоставляет алгоритмы ИИ для перетаскивания нежелательного содержимого. Выполните следующие действия, чтобы попробовать его.

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

Примечание.

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

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
  • Установленная программа cURL.

Анализ текстового содержимого

В следующем разделе описывается пример запроса с cURL. Вставьте приведенную ниже команду в текстовый редактор и внесите следующие изменения.

  1. Замените <endpoint> URL-адрес конечной точки, связанный с ресурсом.
  2. Замените <your_subscription_key> одним из ключей, которые входят в ваш ресурс.
  3. При необходимости замените "text" поле в тексте собственным текстом, который вы хотите проанализировать.

    Совет

    Размер текста и степень детализации

    См . сведения о требованиях к входным данным для ограничений максимальной длины текста.

curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "text": "I hate you",
  "categories": ["Hate", "Sexual", "SelfHarm", "Violence"],
  "blocklistNames": ["string"],
  "haltOnBlocklistHit": true,
  "outputType": "FourSeverityLevels"
}'

Следующие поля должны быть включены в URL-адрес:

имени Обязательно Описание Тип
Версия API Обязательное поле Это проверяемая версия API. Текущая версия: api-version=2024-09-01. Пример: <endpoint>/contentsafety/text:analyze?api-version=2024-09-01 Строка

Параметры в тексте запроса определяются в этой таблице:

имени Обязательно Описание Тип
text Обязательное поле Это необработанный текст для проверки. Другие символы, отличные от ascii, могут быть включены. Строка
Категории Необязательно Предполагается, что это массив имен категорий. См. руководство по категориям вреда для списка доступных имен категорий. Если категории не указаны, используются все четыре категории. Мы используем несколько категорий, чтобы получить оценки в одном запросе. Строка
blocklistNames Необязательно Имя блока текста. Поддерживаются только следующие символы: 0-9 A-Z a-z - . _ ~ Вы можете вложить несколько имен списков здесь. Массив
haltOnBlocklistHit Необязательно Если задано значение true, дальнейший анализ вредного содержимого не будет выполняться в случаях, когда блок-списки попадают. Если задано значение false, все анализы вредного содержимого будут выполняться независимо от того, попадают ли блок-списки. Логический
outputType Необязательно "FourSeverityLevels" или "EightSeverityLevels". Уровень серьезности выходных данных в четырех или восьми уровнях может быть 0,2,4,6 или 0,1,2,3,4,5,6,7. Строка

См. следующий пример текста запроса:

{
  "text": "I hate you",
  "categories": ["Hate", "Sexual", "SelfHarm", "Violence"],
  "blocklistNames": ["array"],
  "haltOnBlocklistHit": false,
  "outputType": "FourSeverityLevels"
}

Откройте окно командной строки, вставьте измененную команду cURL и запустите ее.

Выходные данные

В выходных данных консоли должны отображаться результаты модерации текста, отображаемые в виде данных JSON. Например:

{
  "blocklistsMatch": [
    {
      "blocklistName": "string",
      "blocklistItemId": "string",
      "blocklistItemText": "string"
    }
  ],
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 2
    },
    {
      "category": "SelfHarm",
      "severity": 0
    },
    {
      "category": "Sexual",
      "severity": 0
    },
    {
      "category": "Violence",
      "severity": 0
    }
  ]
}

Поля JSON в выходных данных определяются здесь:

Имя Описание Тип
КатегорииAnalysis Каждый выходной класс, прогнозируемый API. Классификация может быть многометкой. Например, если пример текста выполняется через модель модерации текста, его можно классифицировать как сексуальное содержимое, так и насилие. Категории вреда Строка
Уровень серьезности Чем выше уровень серьезности входного содержимого, тем больше это значение. Целое

Справочная документация | Исходный код библиотеки | Пакет (NuGet) | Примеры

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • Интегрированная среда разработки Visual Studio с включенной рабочей нагрузкой .NET desktop development. Или если вы не планируете использовать интегрированную среду разработки Visual Studio, вам нужна текущая версия .NET Core.
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.

Настройка приложения

Создайте приложение C#.

Откройте Visual Studio и в разделе "Начало работы " выберите "Создать проект". Задайте для фильтров шаблонов значение C#/All Platform/Console. Выберите консольное приложение (приложение командной строки, которое может работать в .NET в Windows, Linux и macOS) и нажмите кнопку "Далее". Измените имя проекта на ContentSafetyQuickstart и нажмите кнопку "Далее". Выберите .NET 6.0 или более поздней версии и нажмите кнопку "Создать ", чтобы создать проект.

Установка клиентского пакета SDK

После создания нового проекта установите клиентский пакет SDK, щелкнув правой кнопкой мыши решение проекта в Обозреватель решений и выбрав "Управление пакетами NuGet". В открывшемся диспетчере пакетов выберите Просмотр и выполните поиск по запросу Azure.AI.ContentSafety. Выберите Установить.

Создание переменной среды

В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.

Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.

  • Чтобы задать CONTENT_SAFETY_KEY переменную среды, замените YOUR_CONTENT_SAFETY_KEY одним из ключей ресурса.
  • Чтобы задать переменную среды, замените YOUR_CONTENT_SAFETY_ENDPOINT конечной CONTENT_SAFETY_ENDPOINT точкой ресурса.

Внимание

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

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

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

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

Анализ текстового содержимого

В каталоге проекта откройте файл Program.cs , созданный ранее. Вставьте следующий код.

using System;
using Azure.AI.ContentSafety;

namespace Azure.AI.ContentSafety.Dotnet.Sample
{
  class ContentSafetySampleAnalyzeText
  {
    public static void AnalyzeText()
    {
      // retrieve the endpoint and key from the environment variables created earlier
      string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
      string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");

      ContentSafetyClient client = new ContentSafetyClient(new Uri(endpoint), new AzureKeyCredential(key));

      string text = "Your input text";

      var request = new AnalyzeTextOptions(text);

      Response<AnalyzeTextResult> response;
      try
      {
          response = client.AnalyzeText(request);
      }
      catch (RequestFailedException ex)
      {
          Console.WriteLine("Analyze text failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
          throw;
      }

      Console.WriteLine("\nAnalyze text succeeded:");
      Console.WriteLine("Hate severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == TextCategory.Hate)?.Severity ?? 0);
      Console.WriteLine("SelfHarm severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == TextCategory.SelfHarm)?.Severity ?? 0);
      Console.WriteLine("Sexual severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == TextCategory.Sexual)?.Severity ?? 0);
      Console.WriteLine("Violence severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == TextCategory.Violence)?.Severity ?? 0);

    }
    static void Main()
    {
        AnalyzeText();
    }
  }
}

Замените "Your input text" текстовым содержимым, который вы хотите использовать.

Совет

Размер текста и степень детализации

См . сведения о требованиях к входным данным для ограничений максимальной длины текста.

Создайте и запустите приложение, выбрав "Начать отладку " в меню отладки в верхней части окна интегрированной среды разработки (или нажмите клавишу F5).

Справочная документация | Исходный код библиотеки | Пакет (PyPI) | Примеры |

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
  • Python 3.x
    • Установка Python должна включать pip. Чтобы проверить, установлен ли pip, выполните команду pip --version в командной строке. Чтобы использовать pip, установите последнюю версию Python.

Создание переменной среды

В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.

Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.

  • Чтобы задать CONTENT_SAFETY_KEY переменную среды, замените YOUR_CONTENT_SAFETY_KEY одним из ключей ресурса.
  • Чтобы задать переменную среды, замените YOUR_CONTENT_SAFETY_ENDPOINT конечной CONTENT_SAFETY_ENDPOINT точкой ресурса.

Внимание

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

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

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

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

Анализ текстового содержимого

В следующем разделе описывается пример запроса с помощью пакета SDK для Python.

  1. Откройте командную строку, перейдите в папку проекта и создайте файл с именем quickstart.py.

  2. Выполните следующую команду, чтобы установить библиотеку безопасности содержимого ИИ Azure:

    pip install azure-ai-contentsafety
    
  3. Скопируйте следующий код в quickstart.py:

    import os
    from azure.ai.contentsafety import ContentSafetyClient
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError
    from azure.ai.contentsafety.models import AnalyzeTextOptions, TextCategory
    
    def analyze_text():
        # analyze text
        key = os.environ["CONTENT_SAFETY_KEY"]
        endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
    
        # Create an Azure AI Content Safety client
        client = ContentSafetyClient(endpoint, AzureKeyCredential(key))
    
        # Contruct request
        request = AnalyzeTextOptions(text="Your input text")
    
        # Analyze text
        try:
            response = client.analyze_text(request)
        except HttpResponseError as e:
            print("Analyze text failed.")
            if e.error:
                print(f"Error code: {e.error.code}")
                print(f"Error message: {e.error.message}")
                raise
            print(e)
            raise
    
        hate_result = next(item for item in response.categories_analysis if item.category == TextCategory.HATE)
        self_harm_result = next(item for item in response.categories_analysis if item.category == TextCategory.SELF_HARM)
        sexual_result = next(item for item in response.categories_analysis if item.category == TextCategory.SEXUAL)
        violence_result = next(item for item in response.categories_analysis if item.category == TextCategory.VIOLENCE)
    
        if hate_result:
            print(f"Hate severity: {hate_result.severity}")
        if self_harm_result:
            print(f"SelfHarm severity: {self_harm_result.severity}")
        if sexual_result:
            print(f"Sexual severity: {sexual_result.severity}")
        if violence_result:
            print(f"Violence severity: {violence_result.severity}")
    
    if __name__ == "__main__":
        analyze_text()
    
  4. Замените "Your input text" текстовым содержимым, который вы хотите использовать.

    Совет

    Размер текста и степень детализации

    См . сведения о требованиях к входным данным для ограничений максимальной длины текста.

  5. Затем запустите приложение с python помощью команды в файле быстрого запуска.

    python quickstart.py
    

Справочная документация | Исходный код библиотеки | Артефакт (Maven) | Примеры

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • Текущая версия пакета средств разработки Java (JDK).
  • Средство сборки Gradle или другой диспетчер зависимостей.
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.

Настройка приложения

Создайте проект Gradle.

В окне консоли (например, cmd, PowerShell или Bash) создайте новый каталог для приложения и перейдите в него.

mkdir myapp && cd myapp

Выполните команду gradle init из рабочей папки. Эта команда создает необходимые файлы сборки для Gradle, включая build.gradle.kts, который используется во время выполнения для создания и настройки приложения.

gradle init --type basic

Когда появится запрос на выбор предметно-ориентированного языка, выберите Kotlin.

В рабочей папке выполните следующую команду, чтобы создать исходную папку проекта.

mkdir -p src/main/java

Перейдите к новой папке и создайте файл с именем ContentSafetyQuickstart.java.

Установка клиентского пакета SDK

В этом кратком руководстве используется диспетчер зависимостей Gradle. Клиентскую библиотеку и информацию для других диспетчеров зависимостей можно найти в центральном репозитории Maven.

Найдите файл build.gradle.kts и откройте его в предпочитаемой интегрированной среде разработки или текстовом редакторе. Затем скопируйте и вставьте в файл приведенную ниже конфигурацию сборки. Эта конфигурация определяет проект как приложение Java, точка входа которого — это класс ContentSafetyQuickstart. Она импортирует библиотеку Визуального распознавания ИИ Azure.

plugins {
    java
    application
}
application { 
    mainClass.set("ContentSafetyQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}

Создание переменной среды

В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.

Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.

  • Чтобы задать CONTENT_SAFETY_KEY переменную среды, замените YOUR_CONTENT_SAFETY_KEY одним из ключей ресурса.
  • Чтобы задать переменную среды, замените YOUR_CONTENT_SAFETY_ENDPOINT конечной CONTENT_SAFETY_ENDPOINT точкой ресурса.

Внимание

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

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

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

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

Анализ текстового содержимого

Откройте ContentSafetyQuickstart.java в предпочитаемом редакторе или интегрированной среде разработки и вставьте следующий код. Замените <your text sample> текстовым содержимым, который вы хотите использовать.

Совет

Размер текста и степень детализации

См . сведения о требованиях к входным данным для ограничений максимальной длины текста.

import com.azure.ai.contentsafety.ContentSafetyClient;
import com.azure.ai.contentsafety.ContentSafetyClientBuilder;
import com.azure.ai.contentsafety.models.AnalyzeTextOptions;
import com.azure.ai.contentsafety.models.AnalyzeTextResult;
import com.azure.ai.contentsafety.models.TextCategoriesAnalysis;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.Configuration;


public class ContentSafetyQuickstart {
    public static void main(String[] args) {

        // get endpoint and key from environment variables
        String endpoint = System.getenv("CONTENT_SAFETY_ENDPOINT");
        String key = System.getenv("CONTENT_SAFETY_KEY");
        
        ContentSafetyClient contentSafetyClient = new ContentSafetyClientBuilder()
            .credential(new KeyCredential(key))
            .endpoint(endpoint).buildClient();

        AnalyzeTextResult response = contentSafetyClient.analyzeText(new AnalyzeTextOptions("<your text sample>"));

        for (TextCategoriesAnalysis result : response.getCategoriesAnalysis()) {
            System.out.println(result.getCategory() + " severity: " + result.getSeverity());
        }
    }
}

Вернитесь в корневую папку проекта и выполните сборку приложения:

gradle build

Затем запустите его с помощью команды gradle run:

gradle run

Выходные данные

Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0

Справочная документация | Исходный код библиотеки | Пакет (npm) | Примеры |

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • Текущая версия Node.js
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.

Настройка приложения

Создайте новое приложение Node.js. В окне консоли (например, cmd, PowerShell или Bash) создайте новый каталог для приложения и перейдите в него.

mkdir myapp && cd myapp

Выполните команду npm init, чтобы создать приложение узла с помощью файла package.json.

npm init

Установка клиентского пакета SDK

Установите пакет npm @azure-rest/ai-content-safety:

npm install @azure-rest/ai-content-safety

Кроме того, установите dotenv модуль для использования переменных среды:

npm install dotenv

Файл package.json этого приложения будет дополнен зависимостями.

Создание переменной среды

В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.

Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.

  • Чтобы задать CONTENT_SAFETY_KEY переменную среды, замените YOUR_CONTENT_SAFETY_KEY одним из ключей ресурса.
  • Чтобы задать переменную среды, замените YOUR_CONTENT_SAFETY_ENDPOINT конечной CONTENT_SAFETY_ENDPOINT точкой ресурса.

Внимание

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

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

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

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

Анализ текстового содержимого

Создайте файл в каталоге index.js. Откройте его в предпочитаемом редакторе или интегрированной среде разработки и вставьте следующий код. Замените <your text sample> текстовым содержимым, который вы хотите использовать.

Совет

Размер текста и степень детализации

См . сведения о требованиях к входным данным для ограничений максимальной длины текста.

const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
  { isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");

// Load the .env file if it exists
require("dotenv").config();

async function main() {
    // get endpoint and key from environment variables
    const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"];
    const key = process.env["CONTENT_SAFETY_KEY"];
    
    const credential = new AzureKeyCredential(key);
    const client = ContentSafetyClient(endpoint, credential);
    
    // replace with your own sample text string 
    const text = "<your sample text>";
    const analyzeTextOption = { text: text };
    const analyzeTextParameters = { body: analyzeTextOption };
    
    const result = await client.path("/text:analyze").post(analyzeTextParameters);
    
    if (isUnexpected(result)) {
        throw result;
    }
    
    for (let i = 0; i < result.body.categoriesAnalysis.length; i++) {
    const textCategoriesAnalysisOutput = result.body.categoriesAnalysis[i];
    console.log(
      textCategoriesAnalysisOutput.category,
      " severity: ",
      textCategoriesAnalysisOutput.severity
    );
  }
}

main().catch((err) => {
    console.error("The sample encountered an error:", err);
});

Запустите приложение, выполнив команду node для файла quickstart.

node index.js

Выходные данные

Hate severity:  0
SelfHarm severity:  0
Sexual severity:  0
Violence severity:  0

Очистка ресурсов

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

  • Категории вреда
  • Настройте фильтры для каждой категории и проверьте наборы данных с помощью Content Safety Studio, экспортируйте код и разверните его.