你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:分析多模式内容(预览版)
多模式 API 分析包含图像内容和文本内容的材料,以帮助使应用程序和服务更安全地免受有害的用户生成或 AI 生成的内容的影响。 将图像及其关联的文本内容一起分析可以保留上下文,对内容进行更全面的理解。
有关内容筛选方式的详细信息,请参阅危害类别概念页。 如需了解 API 输入限制,请参阅“概述”的输入要求部分。
重要
此功能仅在某些 Azure 区域中可用。 请参阅区域可用性。
先决条件
- Azure 订阅 - 免费创建订阅
- 拥有 Azure 订阅后,请在 Azure 门户中创建 Content Safety 资源 ,以获取密钥和终结点。 输入资源的唯一名称,选择订阅,并选择资源组、支持的区域和支持的定价层。 然后选择“创建”。
- 部署资源需要几分钟时间。 完成后,选择“转到资源”。 在左侧窗格中的“资源管理”下,选择“订阅密钥和终结点”。 将终结点和其中一个密钥值复制到临时位置供以后使用。
- 已安装以下项之一:
- REST API 调用的 cURL。
- 已安装 Python 3.x
使用文本分析图像
下一部分介绍使用 cURL 进行多模式审查的示例。
准备图像示例
选择要分析的示例图像,并将其下载到设备。
有关图像限制,请参阅输入要求。 如果格式已进行动画处理,服务将提取第一帧执行分析。
可以通过以下两种方法之一输入图像:本地文件流或 Blob 存储 URL。
- 本地文件流(推荐):将图像编码为 Base64。 可以使用 codebeautify 等网站来执行编码。 然后将编码的字符串保存到临时位置。
- Blob 存储 URL:将图像上传到 Azure Blob 存储帐户。 点击 Blob 存储快速入门了解如何执行此操作。 然后打开 Azure 存储资源管理器并获取图像的 URL。 将其保存到临时位置。
使用文本分析图像
将以下命令粘贴到文本编辑器,并进行以下更改。
- 将
<endpoint>
替换为资源终结点 URL。 - 将
<your_subscription_key>
替换为你的密钥。 - 使用
"content"
字段或"blobUrl"
字段填充正文中的"image"
字段。 例如{"image": {"content": "<base_64_string>"}
或{"image": {"blobUrl": "<your_storage_url>"}
。 - (可选)将
"text"
字段的值替换为要分析的你自己的文本。
curl --location '<endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15-preview ' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data '{
"image": {
"content": "<base_64_string>"
},
"categories": ["Hate","Sexual","Violence","SelfHarm"],
"enableOcr": true,
"text": "I want to kill you"
}'
注意
如果使用的是 Blob 存储 URL,则请求主体应如下所示:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
URL 中必须包含以下字段:
名称 | 必需? | 说明 | 类型 |
---|---|---|---|
API 版本 | 必需 | 这是要检查的 API 版本。 当前版本为:api-version=2024-09-15 。 示例: <endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15 |
字符串 |
请求正文中的参数在此表中定义:
名称 | 说明 | 类型 |
---|---|---|
内容或 blobUrl | (必需)图像的内容或 Blob URL。 可以是 Base64 编码的字节或 Blob URL。 如果同时提供两者,则会拒绝该请求。 图像允许的最大大小为 7200x7200 像素,最大文件大小为 4MB。 图像的最小大小为 50 像素 x 50 像素。 | 字符串 |
text | (可选)附加到图像的文本。 在一个文本请求中,我们最多支持 1000 个字符(unicode 码位)。 | 字符串 |
enableOcr | (必需)设置为 true 时,我们的服务将同时执行 OCR 并分析检测到的文本以及输入图像。 我们将识别输入图像中最多 1000 个字符(unicode 码位)。 其他将被截断。 | 布尔 |
类别 | (可选)假定这是类别名称的数组。 有关可用categories名称的列表,请参阅危害类别指南。 如果未指定categories,则使用所有四个categories。 我们使用多个类别在单个请求中获取分数。 | Enum |
打开命令提示符窗口并运行 cURL 命令。
输出
应会在控制台中看到显示为 JSON 数据的图像和文本审查结果。 例如:
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
输出中的 JSON 字段定义如下:
名称 | 说明 | 类型 |
---|---|---|
categoriesAnalysis | API 预测的每个输出类。 分类可以是多标记的。 例如,将图像上传到图像审查模型时,可以将其归类为性内容和暴力。 有害categories | 字符串 |
严重性 | 每个危害类别中标志的严重性级别。 有害categories | Integer |