From 0144f83c3ceac3125ca131ba3dd40abc511aa8b0 Mon Sep 17 00:00:00 2001 From: chengqian Date: Tue, 18 Aug 2026 14:46:17 +0800 Subject: [PATCH] =?UTF-8?q?chore(db):=E5=90=88=E5=B9=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../000015_chn_abilities_protocol_flags.sql | 17 ------- migrations/000015_v0_2_11_version.sql | 51 +++++++++++++++++++ ...6_add_cache_columns_to_bil_usage_daily.sql | 20 -------- ...017_unify_input_tokens_cache_semantics.sql | 9 ---- 4 files changed, 51 insertions(+), 46 deletions(-) delete mode 100644 migrations/000015_chn_abilities_protocol_flags.sql create mode 100644 migrations/000015_v0_2_11_version.sql delete mode 100644 migrations/000016_add_cache_columns_to_bil_usage_daily.sql delete mode 100644 migrations/000017_unify_input_tokens_cache_semantics.sql diff --git a/migrations/000015_chn_abilities_protocol_flags.sql b/migrations/000015_chn_abilities_protocol_flags.sql deleted file mode 100644 index 22be6f2..0000000 --- a/migrations/000015_chn_abilities_protocol_flags.sql +++ /dev/null @@ -1,17 +0,0 @@ --- +goose Up --- 渠道×模型级协议能力标记(配合 Responses 端点支持): --- supports_responses:模型在该渠道支持 OpenAI Responses 协议(/v1/responses)。 --- responses 入站请求命中时原样直连上游 /v1/responses;调度时对 responses 入站软偏好此类渠道。 --- chat_via_responses:上游仅有 Responses 协议(responses-only,如 Codex 类中转), --- chat 入站请求经 chat→Responses 桥接发送到 /v1/responses。 --- 两项均为渠道×模型粒度(非渠道级):同一渠道的不同模型协议支持可能不同。 - -ALTER TABLE chn_abilities ADD COLUMN supports_responses BOOLEAN DEFAULT false NOT NULL; -COMMENT ON COLUMN chn_abilities.supports_responses IS '模型在该渠道支持 OpenAI Responses 协议(/v1/responses),responses 入站直连转发并获调度软偏好'; - -ALTER TABLE chn_abilities ADD COLUMN chat_via_responses BOOLEAN DEFAULT false NOT NULL; -COMMENT ON COLUMN chn_abilities.chat_via_responses IS '上游仅有 Responses 协议(responses-only 上游),chat 入站经桥接转换后发送 /v1/responses'; - --- +goose Down -ALTER TABLE chn_abilities DROP COLUMN IF EXISTS supports_responses; -ALTER TABLE chn_abilities DROP COLUMN IF EXISTS chat_via_responses; diff --git a/migrations/000015_v0_2_11_version.sql b/migrations/000015_v0_2_11_version.sql new file mode 100644 index 0000000..06ad53f --- /dev/null +++ b/migrations/000015_v0_2_11_version.sql @@ -0,0 +1,51 @@ +-- +goose Up + +-- 1. 渠道×模型级协议能力标记(配合 Responses 端点支持): +-- supports_responses:模型在该渠道支持 OpenAI Responses 协议(/v1/responses)。 +-- responses 入站请求命中时原样直连上游 /v1/responses;调度时对 responses 入站软偏好此类渠道。 +-- chat_via_responses:上游仅有 Responses 协议(responses-only,如 Codex 类中转), +-- chat 入站请求经 chat→Responses 桥接发送到 /v1/responses。 +-- 两项均为渠道×模型粒度(非渠道级):同一渠道的不同模型协议支持可能不同。 + +ALTER TABLE chn_abilities ADD COLUMN supports_responses BOOLEAN DEFAULT false NOT NULL; +COMMENT ON COLUMN chn_abilities.supports_responses IS '模型在该渠道支持 OpenAI Responses 协议(/v1/responses),responses 入站直连转发并获调度软偏好'; + +ALTER TABLE chn_abilities ADD COLUMN chat_via_responses BOOLEAN DEFAULT false NOT NULL; +COMMENT ON COLUMN chn_abilities.chat_via_responses IS '上游仅有 Responses 协议(responses-only 上游),chat 入站经桥接转换后发送 /v1/responses'; + +-- 2. 模型性能监控:bil_usage_daily 增加缓存聚合列(数据源自 bil_usage_logs 已有的缓存明细字段)。 +-- cache_creation_tokens 缓存创建 token 数(Claude cache_creation_input_tokens) +-- cache_read_tokens 缓存命中读取 token 数(Claude cache_read / OpenAI cached_tokens) +-- cache_hit_request_count 命中缓存的请求数(明细行 cache_read_tokens > 0 计 1,与 request_count 同分母) +-- 上线后需用 aggregate-usage 命令回填历史区间(ON CONFLICT 幂等)。 + +ALTER TABLE bil_usage_daily ADD COLUMN cache_creation_tokens BIGINT DEFAULT 0 NOT NULL; +COMMENT ON COLUMN bil_usage_daily.cache_creation_tokens IS '缓存创建 token 数(Claude cache_creation / OpenAI Responses cache_write,SUM 聚合)'; + +ALTER TABLE bil_usage_daily ADD COLUMN cache_read_tokens BIGINT DEFAULT 0 NOT NULL; +COMMENT ON COLUMN bil_usage_daily.cache_read_tokens IS '缓存命中读取 token 数(Claude cache_read / OpenAI cached_tokens,SUM 聚合)'; + +ALTER TABLE bil_usage_daily ADD COLUMN cache_hit_request_count BIGINT DEFAULT 0 NOT NULL; +COMMENT ON COLUMN bil_usage_daily.cache_hit_request_count IS '命中缓存的请求数(明细 cache_read_tokens>0 计 1,含失败状态行)'; + +-- 3. 列语义注释同步更新(cache_creation_tokens 兼收 OpenAI Responses 的 cache_write_tokens) + +COMMENT ON COLUMN bil_usage_logs.input_tokens IS '输入 token 数(含缓存总输入:base + cache_read + cache_creation,跨渠道统一口径)'; +COMMENT ON COLUMN bil_usage_logs.cache_creation_tokens IS '写入缓存的 token 数(Claude cache_creation_input_tokens / OpenAI Responses cache_write_tokens)'; +COMMENT ON COLUMN bil_usage_daily.input_tokens IS '输入Token合计(含缓存总输入,源自 bil_usage_logs.input_tokens)'; + +-- +goose Down + +-- 回退注释(恢复原语义) +COMMENT ON COLUMN bil_usage_logs.input_tokens IS '输入 token 数(含缓存总输入:base + cache_read + cache_creation)'; +COMMENT ON COLUMN bil_usage_logs.cache_creation_tokens IS '写入缓存的 token 数(Claude cache_creation_input_tokens)'; +COMMENT ON COLUMN bil_usage_daily.input_tokens IS '输入Token合计(含缓存总输入,源自 bil_usage_logs.input_tokens)'; + +-- 删除缓存聚合列 +ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_creation_tokens; +ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_read_tokens; +ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_hit_request_count; + +-- 删除协议能力标记列 +ALTER TABLE chn_abilities DROP COLUMN IF EXISTS supports_responses; +ALTER TABLE chn_abilities DROP COLUMN IF EXISTS chat_via_responses; diff --git a/migrations/000016_add_cache_columns_to_bil_usage_daily.sql b/migrations/000016_add_cache_columns_to_bil_usage_daily.sql deleted file mode 100644 index 3b3c60b..0000000 --- a/migrations/000016_add_cache_columns_to_bil_usage_daily.sql +++ /dev/null @@ -1,20 +0,0 @@ --- +goose Up --- 模型性能监控:bil_usage_daily 增加缓存聚合列(数据源自 bil_usage_logs 已有的缓存明细字段)。 --- cache_creation_tokens 缓存创建 token 数(Claude cache_creation_input_tokens) --- cache_read_tokens 缓存命中读取 token 数(Claude cache_read / OpenAI cached_tokens) --- cache_hit_request_count 命中缓存的请求数(明细行 cache_read_tokens > 0 计 1,与 request_count 同分母) --- 上线后需用 aggregate-usage 命令回填历史区间(ON CONFLICT 幂等)。 - -ALTER TABLE bil_usage_daily ADD COLUMN cache_creation_tokens BIGINT DEFAULT 0 NOT NULL; -COMMENT ON COLUMN bil_usage_daily.cache_creation_tokens IS '缓存创建 token 数(Claude cache_creation,SUM 聚合)'; - -ALTER TABLE bil_usage_daily ADD COLUMN cache_read_tokens BIGINT DEFAULT 0 NOT NULL; -COMMENT ON COLUMN bil_usage_daily.cache_read_tokens IS '缓存命中读取 token 数(Claude cache_read / OpenAI cached_tokens,SUM 聚合)'; - -ALTER TABLE bil_usage_daily ADD COLUMN cache_hit_request_count BIGINT DEFAULT 0 NOT NULL; -COMMENT ON COLUMN bil_usage_daily.cache_hit_request_count IS '命中缓存的请求数(明细 cache_read_tokens>0 计 1,含失败状态行)'; - --- +goose Down -ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_creation_tokens; -ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_read_tokens; -ALTER TABLE bil_usage_daily DROP COLUMN IF EXISTS cache_hit_request_count; diff --git a/migrations/000017_unify_input_tokens_cache_semantics.sql b/migrations/000017_unify_input_tokens_cache_semantics.sql deleted file mode 100644 index a227374..0000000 --- a/migrations/000017_unify_input_tokens_cache_semantics.sql +++ /dev/null @@ -1,9 +0,0 @@ --- +goose Up - --- 列语义注释同步更新(cache_creation_tokens 兼收 OpenAI Responses 的 cache_write_tokens) -COMMENT ON COLUMN bil_usage_logs.input_tokens IS '输入 token 数(含缓存总输入:base + cache_read + cache_creation,跨渠道统一口径)'; -COMMENT ON COLUMN bil_usage_logs.cache_creation_tokens IS '写入缓存的 token 数(Claude cache_creation_input_tokens / OpenAI Responses cache_write_tokens)'; -COMMENT ON COLUMN bil_usage_daily.input_tokens IS '输入Token合计(含缓存总输入,源自 bil_usage_logs.input_tokens)'; -COMMENT ON COLUMN bil_usage_daily.cache_creation_tokens IS '写入缓存的 token 数(Claude cache_creation / OpenAI cache_write,SUM 聚合)'; - --- +goose Down