跳到主要内容

aidy.v2.plugin.semantic_cache

Messages

message SemanticCacheLog

请求日志中的 semantic cache 扩展字段。

message SemanticCacheLog {
// 缓存处理状态,例如 hit / miss / bypass。
string status = 1;
// bypass 时的原因,例如 embedding_empty / embedding_failed / search_failed / store_failed。
string bypass_reason = 2;
// 命中时缓存条目的 ID。
string cache_key = 3;
// 命中时向量检索返回的距离(cosine 距离,0 表示完全一致)。
double distance = 4;
// 缓存命名空间 (sc:{tenant}:{route}:{model}:{tools_hash})。
string namespace = 5;
// Embedding 服务返回的 token 使用量。
uint32 embedding_tokens = 6;
// Embedding 服务调用耗时,单位毫秒。
uint64 embedding_latency_ms = 7;
// Redis 向量检索耗时,单位毫秒。
uint64 search_latency_ms = 8;
// 失败或异常时的错误信息。
string error = 9;
// 命中时缓存条目与请求向量的相似度(cosine 相似度,等于 1 - distance,越接近 1 越相似)。
double similarity = 10;
// 命中时缓存条目自写入到本次命中的存在时长,单位毫秒。
uint64 cache_age_ms = 11;
}

message SemanticCachePluginConfig

路由级语义缓存配置。

message SemanticCachePluginConfig {
// 缓存存活时间,单位秒。
// 未显式设置时,运行时默认值为 300。
uint32 cache_ttl_seconds = 1;
// 相似度距离阈值。
// 未显式设置时,运行时默认值为 0.15。
float similarity_threshold = 2;
// 距离度量方式,当前仅支持 cosine。
// 未显式设置时,运行时默认值为 "cosine"。
string distance_metric = 3;
// 从末尾回看多少条匹配消息参与 embedding。
// 未显式设置时,运行时默认值为 5。
uint32 message_countback = 10;
// 哪些 role 参与 embedding。
// 未显式设置时,运行时默认值为 ["user"]。
repeated string include_roles = 11;
// 是否将 instructions 纳入 embedding 文本。
// 未显式设置时,运行时默认值为 false。
bool include_instructions = 12;
// 是否将 tools 签名纳入命名空间隔离。
// 未显式设置时,运行时默认值为 true。
bool include_tools_signature = 13;
// 是否按请求 model 隔离命名空间。
// 未显式设置时,运行时默认值为 true。
bool isolate_by_model = 14;
}