更新时间:2025-07-16 GMT+08:00

索引支持的语法

大模型索引是一种用于标识或定位提示词、响应内容在请求Body体的JSONPath中的位置或编号的方式,遵循JSONPath语法。开启注入检测合规检测响应合规检测后,需要配置索引,便于查找、访问和处理提示词/响应内容相关的信息。

大模型检测需要配置以下索引:
  • 提示词索引:开启注入检测合规检测后,用于定位提示词在请求Body体的JSONPath中的位置,支持下表中所有语法。
  • 响应内容索引:开启响应合规检测后,用于定位响应内容在响应Body体的JSONPath中的位置,支持下表中序号为1、2、3、5的语法,不支持列表通配符提取。
表1 提示词或响应内容索引示例

序号

场景

JSON结构

路径(最大深度为10)

结果

说明

1

单对象

{"prompt": {"role": "user","content": "..."}}

$.prompt.content

"..."

通过 . 逐层访问子节点,直接定位目标字段。必须写出子节点名,暂不支持省略

2

列表取第一个

{"prompt": [{"role": "user","content": "A"}, {"role":"assistant", "content": "B"}]}

$.prompt[0].content

"A"

数组索引从0开始,[0]表示首元素

3

列表取最后一个元素

{"prompt": [{"role": "user","content": "A"}, {"role":"assistant", "content": "B"}]}

$.prompt[-1].content

["B"]

使用负索引-1表示倒数第一个元素

4

列表通配符提取

{"prompt": [{"role": "user","content": "A"}, {"role":"assistant", "content": "B"},{"role": "user", "content": "C"}]}

$.prompt[*].content

["A", "B", "C"]

[*] 表示匹配数组所有元素,不支持递归获取

5

获取根节点

{"prompt": [{"role": "user","content": "A"}, {"role":"assistant", "content": "B"}]}

$

{"prompt":[{"role": "user","content": "A"},{"role":"assistant","content":"B"}]}

获取根节点的JSON内容