参数
有关所有插件均可使用的配置项,请参阅插件通用配置。
该插件支持使用 env:// 前缀从环境变量 引用敏感参数值,也支持使用 secret:// 前缀从密钥管理器(例如 HashiCorp Vault 的 KV 密钥引擎)引用敏感参数值。有关更多信息,请参阅插件中的环境变量和密钥。
exact
精确匹配缓存的设置;仅当规范化后的请求与此前缓存的某个请求完全相同时,才复用其响应。
ttl
有效值:
大于或等于 1
缓存条目的存活时间(TTL),单位为秒。
cache_key
用于控制缓存键作用范围的设置。
share_across_routes
如果为 true,缓存键不包含路由 ID,因此不同路由上的相同请求可以共享缓存的响应。如果为 false,每个路由拥有各自独立的缓存作用范围。
include_consumer
如果为 true,缓存键中包含消费者名称,因此缓存的响应按消费者隔离。
include_vars
要纳入缓存键作用范围的额外上下文变量名称,使这些变量取值不同的请求不会共享缓存的响应。
max_cache_body_size
有效值:
大于或等于 0
允许缓存的响应体最大大小,单位为字节。超过该大小的响应不会被缓存。
cache_headers
如果为 true,插件会添加
X-AI-Cache-Status响应头(缓存命中时还会添加X-AI-Cache-Age)。设置为 false 可省略这些响应头。fail_mode
有效值:
skip、warn或error当请求因未选中任何 AI 实例而无法缓存时(例如路由未同时配置
ai-proxy或ai-proxy-multi)的行为。取值为skip时,请求将不经检查直接放行。取值为warn时,请求将放行并记录一条警告日志。取值为error时,请求将以 HTTP 500 被拒绝。bypass_on
一组请求头匹配规则。如果某个请求匹配任意一条规则,则绕过缓存,并将响应的
X-AI-Cache-Status标记为BYPASS。header
有效值:
非空
要匹配的请求头名称。
equals
规则匹配时请求头必须等于的值。
policy
有效值:
redis缓存存储后端。目前仅支持
redis。layers
有效值:
exact,或同时使用exact和semantic要启用的缓存层。
exact必须保留。添加semantic后,插件会在精确匹配未命中时通过向量嵌入和向量搜索查找相似提示词。语义缓存自 API7 企业版 3.9.16 或 3.10.3 起可用。
semantic
语义缓存设置。当
layers包含semantic时必填。自 API7 企业版 3.9.16 或 3.10.3 起可用。
similarity_threshold
有效值:
介于 0 和 1 之间(含边界值)
判定为语义缓存命中所需的最小相似度分数。
top_k
有效值:
大于或等于 1
要获取的最近向量匹配数量。
distance_metric
有效值:
cosine向量搜索使用的距离度量。
ttl
有效值:
大于或等于 1
语义缓存条目的存活时间,单位为秒。
match
控制哪些对话内容会被用于生成语义匹配向量嵌入的设置。
message_countback
有效值:
大于或等于 1
用作向量嵌入输入的最近的
user消息轮数。ignore_system_prompts
如果为 true,系统提示词会从向量嵌入输入中排除。
ignore_assistant_prompts
如果为 true,
assistant消息会从向量嵌入输入中排除。ignore_tool_prompts
如果为 true,
tool消息会从向量嵌入输入中排除。
embedding
向量嵌入服务提供方配置。只能配置
openai或azure_openai之一。openai
OpenAI 兼容的向量嵌入服务提供方设置。需要
model和api_key。endpoint
OpenAI 兼容的向量嵌入 API 端点。未配置时使用公开 OpenAI 向量嵌入端点。
model
向量嵌入模型名称,例如
text-embedding-3-small。api_key
用于对向量嵌入服务提供方进行身份认证的 API Key。该值在存储到 etcd 前会使用 AES 加密。
dimensions
有效值:
大于或等于 1
向量嵌入输出的维度数。仅对支持覆盖输出维度的模型配置此项。
ssl_verify
如果为 true,验证向量嵌入服务提供方的 TLS 证书。
timeout
有效值:
大于或等于 1
向该向量嵌入服务提供方发送请求的超时时间,单位为毫 秒。
azure_openai
Azure OpenAI 向量嵌入服务提供方设置。需要
endpoint和api_key。endpoint
Azure OpenAI 向量嵌入端点。
api_key
用于向 Azure OpenAI 进行身份认证的 API Key。该值在存储到 etcd 前会使用 AES 加密。
dimensions
有效值:
大于或等于 1
向量嵌入输出的维度数。仅对支持覆盖输出维度的模型配置此项。
ssl_verify
如果为 true,验证 Azure OpenAI 端点的 TLS 证书。
timeout
有效值:
大于或等于 1
向 Azure OpenAI 发送请求的超时时间,单位为毫秒。
vector_search
向量搜索后端配置。
redis
RediSearch 向量索引设置。
index
语义缓存使用的 RediSearch 索引名称。
redis_host
有效值:
至少 2 个字符
Redis 服务器的地址。当
policy为redis时必填。redis_port
有效值:
大于或等于 1
Redis 服务器的端口。
redis_username
使用 Redis ACL 时用于 Redis 认证的用户名。
redis_password
用于 Redis 认证的密码。
redis_database
有效值:
大于或等于 0
Redis 服务器的数据库编号。
redis_timeout
有效值:
大于或等于 1
Redis 操作的超时时间,单位为毫秒。
redis_ssl
如果为 true,使用 TLS 连接 Redis。
redis_ssl_verify
如果为 true,验证 Redis 服务器的 TLS 证书。
redis_keepalive_timeout
有效值:
大于或等于 1000
Redis 连接池的保活超时时间,单位为毫秒。自 API7 企业版 3.9.x 系列的 3.9.17 版本起可用,3.10.x 系列自 3.10.4 版本起可用。
redis_keepalive_pool
有效值:
大于或等于 1
Redis 连接的保活连接池大小。自 API7 企业版 3.9.x 系列的 3.9.17 版本起可用,3.10.x 系列自 3.10.4 版本起可用。