Azure AI 内容安全 TypeScript 技能
帮助 TypeScript 应用检测有害内容并管理自定义拦截词。
技能明确展示 API key、DefaultAzureCredential、endpoint、base64 图像和 Blob URL 的数据流,且使用最小化的内容安全操作;但未要求用户确认创建、修改或删除 blocklist,也未说明敏感内容的隐私、保留、日志脱敏、访问隔离或删除恢复,因此扣分。MIT 许可和 Microsoft 来源提供有限归属证据,但不能替代安全控制。
示例整体自洽,说明 ContentSafetyClient 是函数并多处使用 isUnexpected();但未提供该技能专属测试、版本兼容验证、重试/超时、输入约束或可诊断的异常反馈,删除示例还未检查错误结果。静态评估上限为10,故仅给中低分。
目标场景、输入类型和主要操作较清楚,覆盖文本、图像、危害类别及 blocklist;但未明确不适用范围、服务区域/网络前提、中文内容覆盖或大陆网络可达性,且未给出精确触发边界,因此扣分。
文档包含安装、环境变量、认证、操作示例、类型、端点、严重性和最佳实践,且有 MIT、作者及 1.0.0 元数据;但缺少 changelog、明确维护责任与更新路径、故障排查、API/SDK 版本锁定、隐私限制和 FAQ,渐进式披露也较有限。
示例覆盖核心分析和 blocklist 管理,Content Moderation Helper 可产生直接可用的结构化结果;但示例未验证可执行性,未完整处理空文本、超长文本、图像格式、网络失败、空分析结果和策略差异,输出仍需人工审查。静态评估上限为7,故保守给分。
技能本身提供可审计的代码、端点表、类型名和版本元数据,仓库还展示通用 CI 与测试基础设施;但没有该技能专属测试、真实执行结果或独立第三方交叉验证,通用测试文件也未证明此技能关键路径。静态评估上限为5,故不给更高分。
- 不要将 CONTENT_SAFETY_KEY 写入源码、日志或提示词;优先使用托管身份并按最小权限配置。
- 在生产环境对 blocklist 的创建、更新和删除增加人工确认、审计和可恢复备份。
- 将用户文本和图像视为敏感数据,明确 Azure 区域、跨境传输、保留期限、脱敏和访问控制。
- 在采用前补充真实 CI/集成测试,验证 SDK 版本、严重性阈值、空输入、超长文本、图像格式和网络失败行为。
- 确认目标 Azure 服务端点在 FollowSkills 用户所在地区及大陆网络环境中的实际可达性。
它能做什么 & 适用场景
该技能指导编码代理使用 Azure AI Content Safety REST SDK 分析文本和图像。它覆盖仇恨、性、暴力和自残四类有害内容,并支持四级或八级严重性输出。技能还提供自定义拦截列表的创建、维护、查询和删除示例。适合需要在用户生成内容流程中加入内容审核的 TypeScript 项目。
安装并配置 @azure-rest/ai-content-safety、@azure/identity 和 @azure/core-auth;使用 API 密钥或 DefaultAzureCredential 创建 ContentSafetyClient 函数;调用 /text:analyze 分析文本,调用 /image:analyze 分析 Base64 图像或 Blob URL;创建、更新、列出和删除文本拦截列表及其条目;检查类别严重性和拦截列表匹配,并使用 isUnexpected() 处理错误。
- TypeScript 社区应用的开发者需要在用户发布评论前检测仇恨、性、暴力或自残内容。
- 内容平台工程师需要分析上传图像,并根据严重性决定放行、警告或拦截。
- 企业应用开发者需要用自定义拦截列表识别领域专用的禁用词。
- 合规团队支持的工程团队需要记录审核结果、类别严重性和拦截列表命中情况。
优缺点一览
- 同时覆盖文本和图像审核。
- 提供 API 密钥和 DefaultAzureCredential 两种认证方式。
- 包含自定义拦截列表的完整基础操作示例。
- 给出严重性阈值、错误处理和审核日志方面的实践建议。
- 依赖 Azure Content Safety 端点、凭据和网络连接。
- 示例面向 TypeScript REST SDK,未提供其他语言实现。
- 源材料未说明价格、配额、地区可用性或完整测试套件。
- 图像示例读取本地文件,因此相关实现需要文件系统访问。
如何安装
先运行 npx skills add microsoft/skills,在安装向导中选择该技能。使用 SDK 时安装:npm install @azure-rest/ai-content-safety @azure/identity @azure/core-auth。配置 CONTENT_SAFETY_ENDPOINT、CONTENT_SAFETY_KEY;生产环境使用 DefaultAzureCredential 时还需配置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据。
如何使用
向编码代理提出类似请求:使用 azure-ai-contentsafety-ts,为我的 TypeScript 用户评论审核流程添加文本分析、严重性阈值和自定义 blocklist,并使用 isUnexpected() 处理错误。 代理应按照技能中的 REST SDK 模式调用文本或图像分析接口,并处理类别分析结果和拦截列表匹配。