Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приступая к работе с Content Studio, REST API или клиентскими пакетами SDK для выполнения базовой модерации изображений. Служба безопасности содержимого Azure предоставляет алгоритмы ИИ для перетаскивания нежелательного содержимого. Выполните следующие действия, чтобы попробовать его.
Дополнительные сведения о модерации изображений см. на странице концепции категорий "Вред". Сведения о ограничениях ввода API см. в разделе "Требования к входным данным" в разделе "Обзор".
Внимание
Примеры данных и кода могут содержать оскорбительный контент. Рекомендуется использовать усмотрение пользователя.
Необходимые компоненты
- Учетная запись Azure. Если у вас нет учетной записи, вы можете создать ее бесплатно.
- Ресурс Azure ИИ
Настройка
Чтобы воспользоваться страницей Попробуйте Безопасность содержимого, выполните следующие действия:
- Перейдите в Azure AI Foundry и перейдите к проекту или центру. Затем выберите вкладку "Guardrails + элементы управления" на левой панели навигации и выберите вкладку "Попробовать".
- На странице "Попробовать" можно поэкспериментировать с различными функциями Guardrails и возможностями управления, например, текстом и изображениями, используя настраиваемые пороговые значения для фильтрации неуместного или вредного содержимого.
Анализ изображений
Страница "Умеренный образ" позволяет быстро попробовать модерацию изображений.
- Выберите панель умеренного содержимого изображений.
- Выберите образ из панелей на странице или отправьте собственное изображение.
- Выберите Запустить тест. Служба возвращает все обнаруженные категории с уровнем серьезности для каждой: 0 - Безопасно, 2 - Низкий, 4 - Средний, 6 - Высокий. Он также возвращает двоичный результат "Принято отклонено/" на основе настроенных фильтров. Используйте матрицу на вкладке "Настройка фильтров" справа, чтобы задать допустимые или запрещенные уровни серьезности для каждой категории. Затем вы можете снова запустить текст, чтобы узнать, как работает фильтр.
Просмотр и экспорт кода
Для просмотра и копирования примера кода можно использовать функцию Просмотр кода на страницах Анализ содержимого текста или Анализ содержимого изображения, которая включает конфигурацию для фильтрации по степени важности, черных списков и функций модерации. Затем вы можете развернуть код у себя.
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
- Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
- Установленная программа cURL.
Анализ графического содержимого
В следующем разделе описывается пример запроса модерации изображений с помощью cURL.
Подготовка примера изображения
Выберите образ для анализа и скачайте его на устройство.
См . требования к входным данным для ограничений изображения. Если формат анимирован, служба извлекает первый кадр для анализа.
Вы можете ввести образ одним из двух методов: локальный файловый поток или URL-адрес хранилища BLOB-объектов.
Локальный файловый поток (рекомендуется): кодирование образа в base64. Для кодирования можно использовать веб-сайт, например codebeautify . Затем сохраните закодированную строку во временном расположении.
URL-адрес хранилища BLOB-объектов: отправьте изображение в учетную запись Хранилище BLOB-объектов Azure. Следуйте краткому руководству по хранилищу BLOB-объектов, чтобы узнать, как это сделать. Затем откройте обозреватель служба хранилища Azure и получите URL-адрес изображения. Сохраните его во временном расположении.
Затем необходимо предоставить ресурс безопасности содержимого для чтения из ресурса служба хранилища Azure. Включите управляемое удостоверение, назначаемое системой для экземпляра безопасности содержимого ИИ Azure, и назначьте роль участника и владельца данных BLOB-объектов хранилища удостоверению:
Внимание
Продолжить можно только участником данных BLOB-объектов хранилища или владельцем данных BLOB-объектов хранилища.
Включите управляемое удостоверение для экземпляра безопасности содержимого ИИ Azure.
Назначьте роль участника или владельца данных BLOB-объектов хранилища управляемому удостоверению. Все роли, выделенные ниже, должны работать.
Анализ графического содержимого
Вставьте приведенную ниже команду в текстовый редактор и внесите следующие изменения.
- Замените
<endpoint>URL-адрес конечной точки ресурса. - Замените
<your_subscription_key>собственным ключом. -
"image"Заполните поле в тексте поле полем"content"или полем"blobUrl". Пример:{"image": {"content": "<base_64_string>"}или{"image": {"blobUrl": "<your_storage_url>"}.
curl --location --request POST '<endpoint>/contentsafety/image:analyze?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"image": {
"content": "<base_64_string>"
},
"categories": ["Hate", "SelfHarm", "Sexual", "Violence"],
"outputType": "FourSeverityLevels"
}'
Примечание.
Если вы используете URL-адрес хранилища BLOB-объектов, текст запроса должен выглядеть следующим образом:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
Следующие поля должны быть включены в URL-адрес:
| Имя. | Обязательное? | Описание | Тип |
|---|---|---|---|
| Версия API | Обязательное поле | Это проверяемая версия API. Текущая версия: api-version=2024-09-01. Пример: <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 |
Строка |
Параметры в тексте запроса определяются в этой таблице:
| Имя. | Обязательное? | Описание | Тип |
|---|---|---|---|
| содержание | Обязательное поле | Содержимое или URL-адрес большого двоичного объекта изображения. Я могу быть байтами в кодировке Base64 или URL-адресом БОЛЬШОго двоичного объекта. Если оба заданы, запрос отказывается. Максимальный допустимый размер изображения составляет 7200 x 7200 пикселей, а максимальный размер файла — 4 МБ. Минимальный размер изображения составляет 50 пикселей x 50 пикселей. | Строка |
| Категории | Необязательно | Предполагается, что это массив имен категорий. См. руководство по категориям вреда для списка доступных имен категорий. Если категории не указаны, используются все четыре категории. Мы используем несколько категорий, чтобы получить оценки в одном запросе. | Строка |
| типВывода | Необязательно | API модерации изображений поддерживается "FourSeverityLevels"только . Серьезность выходных данных в четырех уровнях. Значение может быть 0,2,4,6 |
Строка |
Откройте окно командной строки и выполните команду cURL.
Выходные данные
Результаты модерации изображений отображаются в виде данных JSON в консоли. Например:
{
"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.
- Установленная среда выполнения .NET.
- После получения подписки 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одним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTконечнойYOUR_CONTENT_SAFETY_ENDPOINTточкой ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ 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 ContentSafetySampleAnalyzeImage
{
public static void AnalyzeImage()
{
// 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));
// Example: analyze image
string imagePath = @"sample_data\image.png";
ContentSafetyImageData image = new ContentSafetyImageData(BinaryData.FromBytes(File.ReadAllBytes(imagePath)));
var request = new AnalyzeImageOptions(image);
Response<AnalyzeImageResult> response;
try
{
response = client.AnalyzeImage(request);
}
catch (RequestFailedException ex)
{
Console.WriteLine("Analyze image failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
throw;
}
Console.WriteLine("Hate severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Hate)?.Severity ?? 0);
Console.WriteLine("SelfHarm severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.SelfHarm)?.Severity ?? 0);
Console.WriteLine("Sexual severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Sexual)?.Severity ?? 0);
Console.WriteLine("Violence severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Violence)?.Severity ?? 0);
}
static void Main()
{
AnalyzeImage();
}
}
}
Создайте папку sample_data в каталоге проекта и добавьте в него файл image.png .
Создайте и запустите приложение, выбрав "Начать отладку " в меню отладки в верхней части окна интегрированной среды разработки (или нажмите клавишу F5).
Справочная документация | Исходный код библиотеки | Пакет (PyPI) | Примеры |
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
- Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
-
Python 3.8 или более поздней версии
- Установка Python должна включать pip. Чтобы проверить, установлен ли pip, выполните команду
pip --versionв командной строке. Чтобы использовать pip, установите последнюю версию Python.
- Установка Python должна включать pip. Чтобы проверить, установлен ли pip, выполните команду
Создание переменной среды
В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.
- Чтобы задать
CONTENT_SAFETY_KEYпеременную среды, заменитеYOUR_CONTENT_SAFETY_KEYодним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTконечнойYOUR_CONTENT_SAFETY_ENDPOINTточкой ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
После добавления переменных среды может потребоваться перезапустить все запущенные программы, которые будут считывать переменные среды, включая окно консоли.
Анализ графического содержимого
В следующем разделе описывается пример запроса с помощью пакета SDK для Python.
Откройте командную строку, перейдите в папку проекта и создайте файл с именем quickstart.py.
Выполните следующую команду, чтобы установить клиентская библиотека безопасности содержимого Azure:
python -m pip install azure-ai-contentsafetyСкопируйте следующий код в quickstart.py:
import os from azure.ai.contentsafety import ContentSafetyClient from azure.ai.contentsafety.models import AnalyzeImageOptions, ImageData, ImageCategory from azure.core.credentials import AzureKeyCredential from azure.core.exceptions import HttpResponseError def analyze_image(): endpoint = os.environ.get('CONTENT_SAFETY_ENDPOINT') key = os.environ.get('CONTENT_SAFETY_KEY') image_path = os.path.join("sample_data", "image.jpg") # Create an Azure AI Content Safety client client = ContentSafetyClient(endpoint, AzureKeyCredential(key)) # Build request with open(image_path, "rb") as file: request = AnalyzeImageOptions(image=ImageData(content=file.read())) # Analyze image try: response = client.analyze_image(request) except HttpResponseError as e: print("Analyze image 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 == ImageCategory.HATE) self_harm_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SELF_HARM) sexual_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SEXUAL) violence_result = next(item for item in response.categories_analysis if item.category == ImageCategory.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_image()"sample_data"Замените"image.jpg"путь и имя файла локального, который вы хотите использовать.Затем запустите приложение с
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.
Кроме того, создайте src/resources папку в корне проекта и добавьте в нее образец.
Установка клиентского пакета 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одним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTконечнойYOUR_CONTENT_SAFETY_ENDPOINTточкой ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
После добавления переменных среды может потребоваться перезапустить все запущенные программы, которые будут считывать переменные среды, включая окно консоли.
Анализ графического содержимого
Откройте ContentSafetyQuickstart.java в предпочитаемом редакторе или интегрированной среде разработки и вставьте следующий код. Замените source переменную путем к образцу изображения.
import com.azure.ai.contentsafety.ContentSafetyClient;
import com.azure.ai.contentsafety.ContentSafetyClientBuilder;
import com.azure.ai.contentsafety.models.AnalyzeImageOptions;
import com.azure.ai.contentsafety.models.AnalyzeImageResult;
import com.azure.ai.contentsafety.models.ContentSafetyImageData;
import com.azure.ai.contentsafety.models.ImageCategoriesAnalysis;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.BinaryData;
import com.azure.core.util.Configuration;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ContentSafetyQuickstart {
public static void main(String[] args) throws IOException {
// 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();
ContentSafetyImageData image = new ContentSafetyImageData();
String cwd = System.getProperty("user.dir");
String source = "/src/samples/resources/image.png";
image.setContent(BinaryData.fromBytes(Files.readAllBytes(Paths.get(cwd, source))));
AnalyzeImageResult response =
contentSafetyClient.analyzeImage(new AnalyzeImageOptions(image));
for (ImageCategoriesAnalysis 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
Кроме того, создайте /resources папку в корне проекта и добавьте в нее образец.
Установка клиентского пакета 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одним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTконечнойYOUR_CONTENT_SAFETY_ENDPOINTточкой ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
После добавления переменных среды может потребоваться перезапустить все запущенные программы, которые будут считывать переменные среды, включая окно консоли.
Анализ графического содержимого
Создайте файл в каталоге index.js. Откройте его в предпочитаемом редакторе или интегрированной среде разработки и вставьте следующий код. Замените image_path переменную путем к образцу изображения.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
const fs = require("fs");
const path = require("path");
// 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 image file path
const image_path = path.resolve(__dirname, "./resources/image.jpg");
const imageBuffer = fs.readFileSync(image_path);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption = { image: { content: base64Image } };
const analyzeImageParameters = { body: analyzeImageOption };
const result = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
for (let i = 0; i < result.body.categoriesAnalysis.length; i++) {
const imageCategoriesAnalysisOutput = result.body.categoriesAnalysis[i];
console.log(
imageCategoriesAnalysisOutput.category,
" severity: ",
imageCategoriesAnalysisOutput.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
Справочная документация | Исходный код библиотеки | Пакет (npm) | Примеры |
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- Node.js LTS
- TypeScript
- Visual Studio Code
- После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.
- Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
Настройка локальной среды разработки
Создайте новый каталог для проекта и перейдите к нему:
mkdir content-safety-image-analysis cd content-safety-image-analysis code .Создайте новый пакет для модулей ESM в каталоге проекта:
npm init -y npm pkg set type=moduleУстановите необходимые пакеты:
npm install @azure-rest/ai-content-safetyУстановите зависимости для разработки:
npm install typescript @types/node --save-devСоздайте файл в каталоге
tsconfig.jsonпроекта:{ "compilerOptions": { "target": "es2022", "module": "esnext", "moduleResolution": "bundler", "rootDir": "./src", "outDir": "./dist/", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, "declaration": true, "sourceMap": true, "resolveJsonModule": true, "moduleDetection": "force", "allowSyntheticDefaultImports": true, "verbatimModuleSyntax": false }, "include": [ "src/**/*.ts" ], "exclude": [ "node_modules/**/*", "**/*.spec.ts" ] }Обновите
package.json, чтобы включить скрипт для создания файлов TypeScript."scripts": { "build": "tsc", "start": "node dist/index.js" }Создайте папку
resourcesи добавьте в нее образец.srcСоздайте каталог для кода TypeScript.
Создание переменной среды
В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.
- Чтобы задать
CONTENT_SAFETY_KEYпеременную среды, заменитеYOUR_CONTENT_SAFETY_KEYодним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTконечнойYOUR_CONTENT_SAFETY_ENDPOINTточкой ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
После добавления переменных среды может потребоваться перезапустить все запущенные программы, которые будут считывать переменные среды, включая окно консоли.
Анализ графического содержимого
Создайте файл в src каталоге index.ts и вставьте следующий код. Замените строку, используемую для создания переменной imagePath, на путь к вашему образцу изображения.
import ContentSafetyClient, {
isUnexpected,
AnalyzeImageParameters,
AnalyzeImage200Response,
AnalyzeImageDefaultResponse,
AnalyzeImageOptions,
ImageCategoriesAnalysisOutput
} from "@azure-rest/ai-content-safety";
import { AzureKeyCredential } from "@azure/core-auth";
import * as fs from "fs";
import * as path from "path";
import { fileURLToPath } from "url";
// Create __dirname equivalent for ESM modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Get endpoint and key from environment variables
const endpoint = process.env.CONTENT_SAFETY_ENDPOINT;
const key = process.env.CONTENT_SAFETY_KEY;
if (!endpoint || !key) {
throw new Error("Missing required environment variables CONTENT_SAFETY_ENDPOINT or CONTENT_SAFETY_KEY");
}
try {
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
const imagePath = path.join(__dirname, '../resources/image.jpg');
const imageBuffer = fs.readFileSync(imagePath);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption: AnalyzeImageOptions = { image: { content: base64Image } };
const analyzeImageParameters: AnalyzeImageParameters = { body: analyzeImageOption };
const result: AnalyzeImage200Response | AnalyzeImageDefaultResponse = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
const categoriesAnalysis = result.body.categoriesAnalysis as ImageCategoriesAnalysisOutput[];
for (const analysis of categoriesAnalysis) {
console.log(`${analysis.category} severity: ${analysis.severity}`);
}
} catch (error) {
console.error("Error analyzing image:", error);
}
Сборка и запуск примера
Скомпилируйте код TypeScript:
npm run buildЗапустите скомпилированный JavaScript:
node dist/index.js
Выходные данные
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Очистка ресурсов
Если вы хотите очистить и удалить подписку на службы искусственного интеллекта Azure, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы.
Связанный контент
- Категории вреда
- Настройте фильтры для каждой категории и проверьте наборы данных с помощью Content Safety Studio, экспортируйте код и разверните его.