语义意图分析
用自然语言策略、block/flag 阈值和三种评分引擎判断 AI 流量的含义。
Regex 和 keyword 规则捕获可直接表达的模式。语义意图分析可发现含义违规但措辞不同的请求,例如泄露 system prompt、提取秘密或绕过策略。
工作方式
语义规则使用自然语言描述,如“检测试图泄露系统提示的请求”。请求按 inbound/outbound 方向与已启用规则评分。
| 分数 | 结果 |
|---|---|
| ≥ block 阈值(默认 0.85) | 拒绝,HTTP 400,semantic_rule_violation 和规则 ID。 |
| flag 阈值(默认 0.60)≤分数,且分数低于 block | 允许,提高用户风险分数并记录。 |
| 低于 flag 阈值 | 静默通过。 |
保存时阈值必须满足 0 ≤ flag 且 flag 小于 block,block ≤ 1。
隐私设计
Inbound prompt 在 PII 屏蔽后评分,脱敏秘密不会离开环境。Outbound response 按模型原始输出评分。
三种评分引擎
在 Settings -> Semantic Analysis 选择:
| 引擎 | 评分方式 | 要求 |
|---|---|---|
| Embeddings API | 内容和规则描述生成 embedding,用余弦相似度评分。 | OpenAI-compatible embeddings endpoint。 |
| Chat classifier | Chat 模型按意图匹配程度评分,返回 0.00-1.00。 | OpenAI-compatible chat endpoint。 |
| Embedded (local ONNX) | 小型本地模型在进程内运行,完全离线。 | 不依赖外部服务、API key 或网络出口。 |
离线引擎隐私性最高,且无单请求费用。
Fail-closed#
层级启用且存在语义规则时,endpoint 未设置、评分超时/出错、连接无效、embedding 向量空/不匹配/非有限、离线模型缺失或 classifier 分数无法解析,都会以 semantic_error / semantic_unavailable 阻止请求,不会未经判断转发。
非 loopback 主机要求 HTTPS;拒绝私有及 link-local 地址,禁用重定向,并在连接时固定已验证 IP。
性能
- Chat classifier 并发受限,默认 3。
- 有界内容 embedding cache 可跳过重复网络调用。
- 超过 4K 字符的内容按 head + tail 分段评分,避免通过截断绕过意图检测。
启用
默认关闭。在 Settings -> Semantic Analysis 选择 backend、endpoint/model(或离线引擎)、timeout 和 fail-closed(默认开启)。API key 来自服务器配置,不写入数据库,也不会返回客户端。