索引支持的语法
大模型索引是一种用于标识或定位提示词、响应内容在请求Body体的JSONPath中的位置或编号的方式,遵循JSONPath语法。开启注入检测、合规检测、响应合规检测后,需要配置索引,便于查找、访问和处理提示词/响应内容相关的信息。
- 提示词索引:开启注入检测、合规检测后,用于定位提示词在请求Body体的JSONPath中的位置,支持下表中所有语法。
- 响应内容索引:开启响应合规检测后,用于定位响应内容在响应Body体的JSONPath中的位置,支持下表中序号为1、2、3、5的语法,不支持列表通配符提取。
|
序号 |
场景 |
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内容 |