功能说明
AI 历史对话
基于请求头实现用户身份识别,并自动缓存对应用户的历史对话,且在后续对话中自动填充到上下文。同时支持用户主动查询历史对话。
Note
路径后缀匹配 ai-history/query
时,会返回历史对话
运行属性
插件执行阶段:默认阶段
插件执行优先级:650
配置字段
名称 | 数据类型 | 填写要求 | 默认值 | Description |
---|
identityHeader | string | optional | ”Authorization” | 身份解析对应的请求头,可用 Authorization,X-Mse-Consumer等 |
fillHistoryCnt | integer | optional | 3 | 默认填充历史对话轮次 |
cacheKeyPrefix | string | optional | ”higress-ai-history:“ | Redis缓存Key的前缀 |
cacheTTL | integer | optional | 0 | 缓存的过期时间,单位是秒,默认值为0,即永不过期 |
redis.serviceName | string | required | - | redis 服务名称,带服务类型的完整 FQDN 名称,例如 my-redis.dns、redis.my-ns.svc.cluster.local |
redis.servicePort | integer | optional | 6379 | redis 服务端口 |
redis.timeout | integer | optional | 1000 | 请求 redis 的超时时间,单位为毫秒 |
redis.username | string | optional | - | 登陆 redis 的用户名 |
redis.password | string | optional | - | 登陆 redis 的密码 |
用法示例
配置信息
请求示例
自动填充请求示例:
第一轮请求:
请求填充之后:
第一轮请求,无填充。和原始请求一致。
第一轮响应:
第二轮请求:
请求填充之后:
第二轮请求,自动填充上一轮的历史对话。
每轮请求只需要带上当前问题,以及当前需要填充的历史对话轮数,即可自动完成历史对话填充。
获取历史数据示例:
响应示例:
返回三个历史对话,如果未传入 cnt 默认返回所有缓存历史对话。