- m0021: usages JSON全量不截断为计费唯一事实源,req_tokens/resp_tokens同源冗余删除, 统计查询走JSON_EXTRACT+JSON_VALID守卫;backup_tables含llm_usage,dmig幂等(列不存在跳过) - m0025: 按项目统计费用,project_id NOT NULL DEFAULT '0'(哨兵=非项目调用,对齐org_id平台约定), idx_llm_usage_project(project_id,created_at);token绑定project_id全链透传落库 - 两迁移id字段与文件名一致性已校验;llm_call_trace新表走create_tables.py动态扫描models建表,无需迁移
27 lines
1.0 KiB
JSON
27 lines
1.0 KiB
JSON
{
|
||
"id": "m0025",
|
||
"title": "llm_usage 加 project_id 列+索引(2026-09-10 用户定夺:按项目统计费用;非项目调用哨兵值'0'(NOT NULL DEFAULT,对齐org_id '0'平台约定);查询不传project_id=不区分项目。token绑定的project_id沿llm_bridge→token→推理端点→govern_settle全链透传落库)。dmig 幂等守卫:列/索引已存在自动跳过(create_tables.py 也会按 models 自动补列)",
|
||
"backup_tables": [
|
||
"llm_usage"
|
||
],
|
||
"up": [
|
||
{
|
||
"op": "sql",
|
||
"sql": "ALTER TABLE llm_usage ADD COLUMN project_id VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '项目ID(sd_projects.id;''0''=非项目调用,查询不传=不区分项目)' AFTER ppid"
|
||
},
|
||
{
|
||
"op": "sql",
|
||
"sql": "CREATE INDEX idx_llm_usage_project ON llm_usage (project_id, created_at)"
|
||
}
|
||
],
|
||
"down": [
|
||
{
|
||
"op": "sql",
|
||
"sql": "DROP INDEX idx_llm_usage_project ON llm_usage"
|
||
},
|
||
{
|
||
"op": "sql",
|
||
"sql": "ALTER TABLE llm_usage DROP COLUMN project_id"
|
||
}
|
||
]
|
||
} |