索引支持的语法
大模型索引是一种用于标识或定位提示词、响应内容在请求Body体的JSONPath中的位置或编号的方式,遵循JSONPath语法。开启注入检测、合规检测、响应合规检测后,需要配置索引,便于查找、访问和处理提示词/响应内容相关的信息。
- 提示词索引:开启注入检测、合规检测后,用于定位提示词在请求Body体的JSONPath中的位置,支持下表中所有语法。
- 响应内容索引:开启响应合规检测后,用于定位响应内容在响应Body体的JSONPath中的位置,支持下表中序号为1、2、3、5的语法,不支持列表通配符提取。
- 图片检测索引:开启图片检测后,且图片上传采用OpenAI请求方式时,需要配置图片检测索引,用于定位图片内容在响应Body体的JSONPath中的位置,支持下表中所有的语法。
序号 | 场景 | 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 | "ABC" | [*] 表示匹配数组所有元素,不支持递归获取 |
5 | 获取根节点 | {"prompt": [{"role": "user","content": "A"}, {"role":"assistant", "content": "B"}]} | $ | {"prompt":[{"role": "user","content": "A"},{"role":"assistant","content":"B"}]} | 获取根节点的JSON内容 |

