Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начните работу с 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 . Затем сохраните закодированную строку во временном расположении.
Blob storage URL: отправьте образ в учетную запись Хранилище BLOB-объектов Azure. Следуйте инструкции по быстрому началу работы по хранилищу BLOB-объектов, чтобы узнать, как это сделать. Затем откройте Обозреватель службы хранилища Azure и получите URL-адрес изображения. Сохраните его во временную папку.
Затем необходимо предоставить ресурсу безопасности содержимого доступ для чтения из ресурса служба хранилища Azure. Включите системно назначаемое управляемое удостоверение для экземпляра Безопасность содержимого ИИ Azure и назначьте этому удостоверению роль Участник данных хранилища BLOB-объектов/Владелец:
Внимание
Только роли Участник данных BLOB-объектов хранилища или Владелец данных BLOB-объектов хранилища допустимы для продолжения.
Активируйте управляемую идентификацию для экземпляра Безопасность содержимого ИИ Azure.
Назначьте роль Storage Blob Data Contributor/Owner управляемому удостоверению. Все роли, выделенные ниже, должны работать.
Анализ графического содержимого
Вставьте приведенную ниже команду в текстовый редактор и внесите следующие изменения.
- Замените
<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 |
текстовая строка |
Параметры в тексте запроса определяются в этой таблице:
| Имя. | Обязательное? | Описание | Тип |
|---|---|---|---|
| содержание | Обязательное поле | Содержимое или BLOB URL-адреса элемента изображения. Я могу быть байтами в кодировке base64 или URL-адресом blob. Если оба заданы, запрос отклоняется. Максимальный допустимый размер изображения составляет 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 в выходных данных определяются здесь:
| Имя. | Описание | Тип |
|---|---|---|
| АнализКатегорий | Каждый выходной класс, прогнозируемый API. Классификация может быть многоярлыковой. Например, когда изображение передается в модель модерации изображений, его можно классифицировать как сексуальное содержимое, так и насилие. Категории вреда | текстовая строка |
| Уровень серьезности | Степень серьёзности индикатора в каждой категории вреда. Категории вреда | Целое |
Справочная документация | Исходный код библиотеки | Пакет (NuGet) | Примеры
Предварительные требования
- Подписка Azure — Создать бесплатно
- Visual Studio IDE с включенной функцией разработки настольных приложений .NET. Или если вы не планируете использовать Visual Studio IDE, вам нужна текущая версия .NET Core.
- .NET Runtime установлен.
- Получив подписку Azure,
создайте ресурс безопасности содержимого на портале Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион (см . доступность региона) и поддерживаемую ценовую категорию. Затем выберите Создать.- Развертывание ресурса занимает несколько минут. После завершения выберите перейти к ресурсу. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Конечная точка и любой из ключей используются для вызова API.
Настройка приложения
Создайте приложение C#.
Откройте Visual Studio и в разделе Get started выберите Create новый проект. Задайте для фильтров шаблонов значение C#/All Platform/Console. Выберите Console App (приложение командной строки, которое может работать в .NET на Windows, Linux и macOS) и выберите Next. Измените имя проекта на ContentSafetyQuickstart и нажмите кнопку "Далее". Выберите .NET 6.0 или более поздней версии и выберите Create для создания проекта.
Установка клиентского пакета SDK
После создания нового проекта установите клиентский пакет SDK, щелкнув правой кнопкой мыши решение проекта в Обозреватель решений и выбрав Manage NuGet Packages. В открывщемся диспетчере пакетов выберите Browse и найдите Azure.AI.ContentSafety. Выберите Установить.
Создание переменной среды
В этом примере учетные данные записываются в переменные среды на локальном компьютере, на котором запущено приложение.
Чтобы задать переменную среды для ключа и конечной точки, откройте окно консоли и следуйте инструкциям для операционной системы и среды разработки.
- Чтобы задать
CONTENT_SAFETY_KEYпеременную среды, заменитеYOUR_CONTENT_SAFETY_KEYодним из ключей ресурса. - Чтобы задать переменную среды, замените
CONTENT_SAFETY_ENDPOINTна конечную точку вашего ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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).
документация по Reference | исходный код библиотеки | пакет (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на конечную точку вашего ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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в файле quickstart.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
Когда появится запрос на выбор DSL, выберите 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на конечную точку вашего ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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на конечную точку вашего ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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на конечную точку вашего ресурса.
Внимание
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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 AI services, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы.
Связанный контент
- Категории вреда
- Настройте фильтры для каждой категории и проверьте наборы данных с помощью Content Safety Studio, экспортируйте код и разверните его.