通过一个完整的非流式文本内容安全检测示例,你可以在 PHP 项目中完成 SDK 初始化、构造检测请求并解析返回结果(判定与理由)。
MsgID(消息标识)、Decision.DecisionType(决策类型)、以及Risks.Category命中的检测分类。{region} 必须一致,域名形如 https://{region}.sdk.access.llm-shield.omini-shield.com。AccessKeySelfManageAccess 与 LLMShieldProtectSdkAccess。其他控制台操作等权限说明请参见使用大模型应用防火墙服务需要具备哪些权限?参考以下表格了解 SDK 中的关键参数说明及获取方法。
参数 | 示例值 | 说明 |
|---|---|---|
myUrl |
|
|
ak、sk |
|
|
appid | app-d35p9du8pa51**** |
|
region |
|
|
Role、Content、ContentType(示例为 TEXT)。<?php // 引入 vendor 自动加载文件(用于 GuzzleHttp 等依赖) require __DIR__ . "/vendor/autoload.php"; use Volcengine\LLMShield\Api\LLMShieldApi; use Volcengine\LLMShield\Model; // 配置信息。 $myUrl = "https://cn-beijing.sdk.access.llm-shield.omini-shield.com"; // 访问地址,根据大模型应用防火墙实例所在地域替换相应的地域信息 $ak = "YOUR AK"; // 火山账号的 AK $sk = "YOUR SK"; // 火山账号的 SK $appid = "app-d2pgblcjslsilv******"; // 资产的 AppId,可在控制台资产管理页面获取 $region = "cn-beijing"; // 大模型应用防火墙实例所在地域 $timeout = 60; // 超时时间(秒) $service = "llmshield"; // 大模型应用防火墙的服务名称 $client = new LLMShieldApi($myUrl, $ak, $sk, $appid, $region, $timeout, $service); $request = new Model\ModerateV2Request(); $request->Scene = $appid; // 设置检测内容 $request->Message = new Model\MessageV2(); $request->Message->Role = "user"; // 检测的内容来源,user-用户提示词;assistant-模型响应内容 $request->Message->Content = "网上都说A地很多骗子和小偷,他们的典型伎俩..."; // 检测的文本内容详情 $request->Message->ContentType = Model\ContentTypeV2::TEXT; // 检测的内容类型, TEXT-文本;IMAGE-图片 // 设置上下文 $request->History = []; $request->History[] = new Model\MessageV2(); $request->History[0]->Role = "system"; // 上下文内容来源,user-用户提示词;assistant-模型响应内容;system-系统默认提示词 $request->History[0]->Content = "你是一个专业的问答助手,你的任务是回答用户的问题,注意保持友善和专业。"; $request->History[0]->ContentType = Model\ContentTypeV2::TEXT; // 设置上下文 $request->History[] = new Model\MessageV2(); $request->History[1]->Role = "user"; // 上下文内容来源,user-用户提示词;assistant-模型响应内容;system-系统默认提示词 $request->History[1]->Content = "请给我一份十一出行计划"; $request->History[1]->ContentType = Model\ContentTypeV2::TEXT; $client->Moderate($request)->then(function ($resp) { echo json_encode($resp[0], JSON_UNESCAPED_UNICODE) . "\n"; echo $resp[1] . "\n"; echo json_encode($resp[2], JSON_UNESCAPED_UNICODE) . "\n"; })->wait();
注意
运行前,请确保你已在大模型应用防火墙控制台配置相关防护策略,SDK 将按照策略中关联的检测分类和执行动作返回对应结果。
运行代码,得到以下调用结果:
{ "MsgID": "19cd001d5f59452ea5f240c0bcca****", "RiskInfo": { "Risks": [ { "Category": "101", "Label": "10112000", "Prob": 1 }, { "Category": "101", "Label": "10103005" } ] }, "Decision": { "DecisionType": 2, "DecisionDetail": { "BlockDetail": [ ], "ReplaceDetail": { "Replacement": null } }, "HitStrategyIDs": [ "rule-d44mri1i7k3ipsss****" ] }, "PermitInfo": { "Permits": null }, "Degraded": false, "DegradeReason": "" }