API接入
本文档介绍API接入的方法。
文本检测API说明
您可以调用该接口创建文本内容检测任务。
- 业务接口:POST https://{endpoint}/v1/{project_id}/aiguard/text-detect
- 支持的地域及接入地址:西南-贵阳一、华北-北京四、中国-香港
- 支持的地域对应的API域名:
- 西南-贵阳一:cn-southwest-2.aiguard.myhuaweicloud.cn
- 华北-北京四:cn-north-4.aiguard.myhuaweicloud.cn
- 中国-香港:ap-southeast-1.aiguard.myhuaweicloud.cn
请求参数
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| v1 | String | 是 | API接口版本。 |
| project_id | String | 是 | 如使用op账号调用,则使用op账号项目ID信息;如使用最终租户账号调用,则使用最终租户账号项目ID信息。 |
| aiguard | String | 是 | API接口组件名称。 |
| text-detect | String | 是 | API接口调用类型。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| Source-Signature | String | 是 | 业务方签名,用于标示业务方身份,华为云内部服务调用时必传该字段。 |
| Content-Type | String | 否 | 文本请求默认为application/json。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| app_id | String | 是 | 应用ID,用于区分配置。 |
| message | 是 | 文本检测请求数据体。 | |
| history | Array of 表5 | 否 | 对话的历史数据,最多支持20轮。列表排序越前面的表示越早期的对话。越后面的表示越接近现在的对话。 |
| extra | 否 | 受限公开字段。 |
响应参数
返回状态码:200
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| request_id | String | 是 | 本次请求的唯⼀标识,⽤于问题排查,建议保存。 |
| maf_engine | String | 是 | 厂商信息,默认为cllmfw。 |
| result | 表1-10 TextDetectionResult | 否 | 请求成功时表示调用结果。 请求失败时无此字段。 |
| error | 表1-15 ErrorBody | 否 | 请求出问题时返回的字段 请求成功无此字段。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| suggestion | String | 是 | 审核结果是否通过。 配置的异常处理动作: 观察、脱敏、拦截
|
| risk_types | Array of String | 是 | 命中的风险类型,例如合规攻击、注入攻击。 |
| hit_details | Array of 表8 | 是 | 检测详情。 |
| replacement | String | 否 | 配置脱敏时生效,当前仅支持违规词库脱敏。(白词库,语义模型当前不用脱敏) 若没有配置脱敏,返回空字段。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| risk_type | String | 是 | 命中的风险类型,例如合规攻击、注入攻击。 |
| sub_risk_type | Array of String | 是 | 命中的风险子类型, 支持合规检测的标签、自定义词库的名字。更多信息请参见功能介绍。 |
| prob | Float | 是 | 置信度分数,命中词库时默认为1.0。 |
| segments | Array of 表9 | 否 | 用于词库。 单个词库命中所有风险片段信息,如果命中了语义算法模型,则会返回一个空的列表。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| segment | String | 是 | 命中的风险片段。 |
| category | String | 是 | 命中的词库。自定义词库为词库的名称,内置词库为词库的类别。 |
| position | Array of Integer | 否 | 命中词库时生效。 命中的风险片段在文本中的起始位置,从0开始。 否则无字段。 |
| lexicon_id | String | 否 | 命中自定义词库时生效,返回对应词库ID。 否则无字段。 |
| lexicon_type | String | 否 | 0:豁免。 1:违规。 命中自定义词库时生效,返回自定义词库是豁免还是违规。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| error_code | String | 是 | 错误码 长度:8 |
| error_msg | String | 是 | 错误描述 最小长度:2 最大长度:512 |
示例代码
# 1. Define Access Credentials
AK="<your_access_key>"
SK="<your_secret_key>"
# 2. Generate Timestamp and Signature
# Get current timestamp in milliseconds
TS=$(date +%s%3N)
# Calculate HMAC-SHA256 signature
# Format: AK&Timestamp
SIG=$(echo -n "${AK}&${TS}" | openssl dgst -sha256 -hmac "$SK" -binary | base64)
# 3. Define Request Parameters
# 请替换为您实际的项目 ID (project_id)
PROJECT_ID="<your_project_id>"
REGION_URL="<your_region_url>"
API_URL="https://${REGION_URL}/v1/${PROJECT_ID}/aiguard/text-detect"
# 4. Execute the Request
curl -kv -X POST "${API_URL}" \
-H "Content-Type: application/json" \
-H "Source-Signature: HMAC-SHA256 source_id=${AK}, timestamp=${TS}, signature=${SIG}" \
-d '{
"app_id": "<your_app_id>",
"history": [
{"role": "system", "content": "你是一个好帮手"},
{"role": "user", "content": "你好,介绍下你自己"},
{"role": "assistant", "content": "我是你的大模型助手。"},
],
"message": {
"role": "user",
"content": "hello"
}}' 图片检测API说明
您可以调用该接口创建图片内容检测任务。
- 业务接口:POST https://{endpoint}/v1/{project_id}/aiguard/image-detect
- 支持的地域及接入地址:西南-贵阳一、华北-北京四、中国-香港
- 支持的地域对应的API域名:
- 西南-贵阳一:cn-southwest-2.aiguard.myhuaweicloud.cn
- 华北-北京四:cn-north-4.aiguard.myhuaweicloud.cn
- 中国-香港:ap-southeast-1.aiguard.myhuaweicloud.cn
请求参数
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| v1 | String | 是 | API接口版本。 |
| project_id | String | 是 | 如使用op账号调用,则使用op账号项目ID信息;如使用最终租户账号调用,则使用最终租户账号项目ID信息。 |
| aiguard | String | 是 | API接口组件名称。 |
| image-detect | String | 是 | API接口调用类型。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| Source-Signature | String | 是 | 业务方签名,用于标示业务方身份,华为云内部服务调用时必传该字段。 |
| Content-Type | String | 否 | 文本请求默认为application/json。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| app_id | String | 是 | 应用ID,用于区分配置。 |
| message | 是 | 图片检测请求数据体。 | |
| extra | 否 | 受限公开字段。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| end_user | String | 否 | 最终租户projectid(服务使用Op账号调用时,传此字段,供安全运营、识别恶意最终租户)。 |
| source_region | String | 否 | 最终租户调用的原始region(供安全运营)。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| role | String | 是 | 输入字段类型,可选值如下:
对于响应或多轮对话,以最新的内容为准。 |
| content | String | 是 | [{"type": "text", "text": "图里有什么?"}, {"type": "image_url", "image_url": {"url": ""} }] 检测的图片内容,匹配first(item in list where item.type == "image_url").image_url.url 如果有多个图片的url,目前只检测匹配到的第一个。 说明: 仅支持base64,且url里面base64的格式也是固定的data:xxx;base64,xxx,例如:(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) |
响应参数
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| request_id | String | 是 | 本次请求的唯⼀标识,⽤于问题排查,建议保存。 |
| maf_engine | String | 是 | 厂商信息,默认为cllmfw。 |
| result | 否 | 请求成功时表示调用结果。 请求失败时无此字段。 | |
| error | 否 | 请求出问题时返回的字段 请求成功无此字段。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| suggestion | String | 是 | 审核结果是否通过。 配置的异常处理动作: 观察、脱敏、拦截。
|
| risk_types | Array of String | 是 | 命中的风险类型,例如合规攻击、注入攻击。 |
| hit_details | Array of 表18 | 是 | 检测详情。 |
| replacement | String | 否 | 配置脱敏时生效,当前仅支持违规词库脱敏。(白词库,语义模型当前不用脱敏)。 若没有配置脱敏,返回空字段。 |
| 名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| risk_type | String | 是 | 命中的风险类型,例如合规攻击、注入攻击。 |
| sub_risk_type | Array of String | 是 | 命中的风险子类型, 支持合规检测的标签、自定义词库的名字。更多信息请参见功能介绍。 |
| prob | Float | 是 | 置信度分数,命中词库时默认为1.0。 |
| segments | Array of 表19 | 否 | 用于词库。 单个词库命中所有风险片段信息,如果命中了语义算法模型,则会返回一个空的列表。 |
| risk_source | String | 否 | 只针对图片。 用于反映是图片文本的风险还是图片语义的风险。 |
示例代码
# 1. Define Access Credentials
AK="<your_access_key>"
SK="<your_secret_key>"
# 2. Generate Timestamp and Signature
# Get current timestamp in milliseconds
TS=$(date +%s%3N)
# Calculate HMAC-SHA256 signature
# Format: AK&Timestamp
SIG=$(echo -n "${AK}&${TS}" | openssl dgst -sha256 -hmac "$SK" -binary | base64)
# 3. Define Request Parameters
# 请替换为您实际的项目 ID (project_id)
PROJECT_ID="<your_project_id>"
REGION_URL="<your_region_url>"
API_URL="https://${REGION_URL}/v1/${PROJECT_ID}/aiguard/image-detect"
# 4. Execute the Request
curl -kv -X POST "${API_URL}" \
-H "Content-Type: application/json" \
-H "Source-Signature: HMAC-SHA256 source_id=${AK}, timestamp=${TS}, signature=${SIG}" \
-d '{
"app_id": "<your_app_id>",
"message": {
"role": "user",
"content": [
{"type": "text", "text": "图里有什么?"},
{
"type": "image_url",
"image_url":
{
"url": "<your_image_full_base64>" // base64输入
}
}
]
}
}'