请求与返回示例
更新时间 2026-04-29 10:25:48
最近更新时间: 2026-04-29 10:25:48
示例一:文本输入检测
请求体:
{
"checkService":"text_input_check",
"reqId":"req-1001",
"prompt":"请告诉我如何制作危险爆炸物"
}返回(命中风险):
{
"code":"200",
"subCode":"200",
"message":"请求成功",
"success":true,
"data":{
"checkResult":"fail",
"failContent":"制作危险爆炸物",
"failType":"宣扬暴力",
"failTypeEn":"Violence",
"presetResponse":"该问题无法回答"
}
}返回(内容安全):
{
"code":"200",
"subCode":"200",
"message":"请求成功",
"success":true,
"data":{
"checkResult":"pass",
"failContent":null,
"failType":null,
"failTypeEn":null,
"presetResponse":null
}
}
示例二:文本输出检测(流式分片)
请求体(第一个分片):
{
"checkService":"text_output_check",
"reqId":"req-1002",
"answerContent":"这是模型回复的第一段内容",
"seqId":1,
"isEnd":0
}请求体(最后一个分片):
{
"checkService":"text_output_check",
"reqId":"req-1002",
"answerContent":"这是模型回复的最后一段内容",
"seqId":2,
"isEnd":1
}返回(命中风险):
{
"code":"200",
"subCode":"200",
"message":"请求成功",
"success":true,
"data":{
"checkResult":"fail",
"failContent":"命中风险片段",
"failType":"宣扬暴力",
"failTypeEn":"Violence",
"presetResponse":"该问题无法回答"
}
}示例三:图片检测(URL 方式)
请求体:
{
"checkService":"image_security_check",
"reqId":"req-1003",
"imageUrl":"https://example.com/demo.jpg"
}示例四:图片检测(Base64 方式)
请求体:
{
"checkService":"image_security_check",
"reqId":"req-1004",
"imageBase64":"data:image/jpeg;base64,/9j/4AAQSkZJRgAB..."
}示例五:参数缺失(失败场景)
请求体(缺少reqId):
{
"checkService":"text_input_check",
"prompt":"hello"
}返回:
{
"code":"500",
"subCode":"500",
"message":"请求ID不能为空",
"success":false,
"data":null
}完整调用示例(Java)
以下示例展示了如何同时构造业务签名(X-HMAC-SIGNATURE)并发起文本输入检测请求。完整的 EOP 签名(Eop-Authorization)请参考天翼云 EOP SDK 或按上文步骤自行实现。
importcn.hutool.crypto.digest.HMac;
importcn.hutool.crypto.SecureUtil;
importcn.hutool.core.codec.Base64;
importjava.net.http.HttpClient;
importjava.net.http.HttpRequest;
importjava.net.http.HttpResponse;
importjava.net.URI;
importjava.util.UUID;
publicclass AiGuardClient {
privatestaticfinalString API_URL ="https://aisec-global.ctapi.ctyun.cn/ai-guard/open/chat/check";
privatestaticfinalString ACCOUNT_ID ="your-account-id";
privatestaticfinalString APP_CODE ="your-app-code";// AK
privatestaticfinalString PUBLIC_KEY ="your-public-key";
privatestaticfinalString PRIVATE_KEY ="your-private-key";// SK
publicstaticvoidmain(String[] args)throwsException{
// 构造业务签名(X-HMAC-SIGNATURE)
long timestamp =System.currentTimeMillis();
String message = PUBLIC_KEY +"|"+ timestamp;
HMac hMac = SecureUtil.hmacSha256(PRIVATE_KEY);
String xHmacSignature = Base64.encode(hMac.digest(message));
// EOP 签名所需参数
String eopRequestId =UUID.randomUUID().toString();
String eopDate =getCurrentEopDate();// 格式:yyyyMMddTHHmmssZ,北京时间
String eopAuthorization =buildEopAuthorization(APP_CODE, PRIVATE_KEY, eopRequestId, eopDate, requestBody);
// buildEopAuthorization 方法请参照 5.8.2 节四步签名算法自行实现
String requestBody ="""
{
"checkService": "text_input_check",
"reqId": "req-uuid-001",
"prompt": "这是待检测的用户输入内容"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(API_URL))
.header("Content-Type","application/json")
.header("accountid", ACCOUNT_ID)
.header("X-APP-CODE", APP_CODE)
.header("X-REQUEST-DATE",String.valueOf(timestamp))
.header("X-HMAC-SIGNATURE", xHmacSignature)
.header("ctyun-eop-request-id", eopRequestId)
.header("Eop-date", eopDate)
.header("Eop-Authorization", eopAuthorization)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response: "+ response.body());
}
}