Skip to content

usage_events_fts

FTS5 虚拟表,为用量页面提供账户、认证、模型、端点和路径前缀搜索。

sql
CREATE VIRTUAL TABLE usage_events_fts USING fts5(
  event_id UNINDEXED,
  account_snapshot,
  auth_label_snapshot,
  auth_file_snapshot,
  auth_provider_snapshot,
  auth_project_id_snapshot,
  auth_index,
  source,
  api_key_hash,
  provider,
  model,
  requested_model,
  resolved_model,
  endpoint,
  method,
  path,
  tokenize='unicode61',
  prefix='2 3 4'
);

字段说明

字段设计作用
event_id对应 usage_events.id 的回表与清理键;声明为 UNINDEXED,不参与关键词匹配。
account_snapshot索引账号展示快照,使用户可以按邮箱或账号名称搜索历史请求。
auth_label_snapshot索引认证标签快照,支持按凭证别名定位请求。
auth_file_snapshot索引认证文件名,支持从文件维度排查账号请求。
auth_provider_snapshot索引认证所属提供商快照,补充请求路由提供商之外的搜索维度。
auth_project_id_snapshot索引云项目 ID,便于区分服务账号所属项目。
auth_index索引稳定认证标识,支持直接按完整或前缀认证索引检索。
source索引脱敏后的来源展示文本,不把原始敏感来源写入 FTS。
api_key_hash索引 API Key 哈希,支持与别名检索结果合并并精确回查事件。
provider索引请求提供商字段。
model索引 Usage 主模型字段。
requested_model索引调用方请求模型或别名。
resolved_model索引 CPA 最终解析模型。
endpoint索引标准化操作,例如 POST /v1/chat/completions
method索引 HTTP 方法。
path索引请求路径,支持路径前缀搜索。

分词器为 unicode61,前缀长度为 2/3/4。状态码、错误、Token 和原始 JSON 不进入 FTS,避免索引体积无界增长;这些字段通过普通筛选或回表读取。

当前只有 usage_events INSERT 触发器自动写入 FTS;启动时 backfillUsageEventsFTS()event_id 补齐历史缺口。普通业务不会更新 usage 事件。数据清理删除 usage 事件时会显式同步清理 FTS,而不是依赖 DELETE 触发器。

FTS shadow 表由 SQLite 管理,SQL Console 默认隐藏。