pipeline-llm/models/llm_usage.json
yumoqing 660ad21365 feat(pipeline-llm): 模型治理模块v1.0.0 — 供应商/端点目录/账号钱包/模型注册/组织容错策略/限额限流/双维度记账
- 8张llm_前缀表(手写幂等DDL): vendor/account/model/api_profile/org_policy/org_quota/user_quota/usage
- gateway.py 门禁链: 限流→限额→策略选模型(主备容错)→账号×端点轮转(偏好过滤+余额加权+冷却避让)→预授权-结算
- api_key AES单层加密(非RC4,盐不对称不可解); 限流Redis分钟窗口(db4) fail-open
- 双维度记账: 一次调用同行记cost(账号侧)+charge(组织池侧); 充值=recharge行
- CRUD+index.ui 8卡片导航+总览; appcodes字典5组; 设计规范+30测试用例
- 策略即开关: 机构无策略→__LEGACY__走旧llm表(向后兼容零改动)
2026-09-01 17:27:17 +08:00

150 lines
3.4 KiB
JSON

{
"summary": [
{
"name": "llm_usage",
"title": "用量流水(双维度记账)",
"primary": [
"id"
],
"catelog": "entity"
}
],
"fields": [
{
"name": "id",
"title": "主键ID",
"type": "str",
"length": 32,
"nullable": "no"
},
{
"name": "org_id",
"title": "机构ID",
"type": "str",
"length": 32
},
{
"name": "user_id",
"title": "用户ID",
"type": "str",
"length": 32
},
{
"name": "model_id",
"title": "模型ID",
"type": "str",
"length": 32
},
{
"name": "account_id",
"title": "账号ID",
"type": "str",
"length": 32
},
{
"name": "endpoint_region",
"title": "端点区域",
"type": "str",
"length": 20
},
{
"name": "req_tokens",
"title": "请求token",
"type": "int",
"default": "0"
},
{
"name": "resp_tokens",
"title": "响应token",
"type": "int",
"default": "0"
},
{
"name": "cost",
"title": "成本金额(账号)",
"type": "float",
"length": 12,
"dec": 6,
"default": "0"
},
{
"name": "charge",
"title": "消费金额(组织池)",
"type": "float",
"length": 12,
"dec": 6,
"default": "0"
},
{
"name": "ppid",
"title": "定价项目ID",
"type": "str",
"length": 32
},
{
"name": "task_ref",
"title": "调用来源",
"type": "str",
"length": 100
},
{
"name": "status",
"title": "状态",
"type": "str",
"length": 20,
"nullable": "no",
"default": "'ok'"
},
{
"name": "note",
"title": "备注/原因",
"type": "str",
"length": 200
},
{
"name": "created_at",
"title": "创建时间",
"type": "timestamp",
"nullable": "no"
}
],
"indexes": [
{
"name": "idx_llm_usage_org",
"idxtype": "index",
"idxfields": [
"org_id",
"created_at"
]
},
{
"name": "idx_llm_usage_model",
"idxtype": "index",
"idxfields": [
"model_id"
]
}
],
"codes": [
{
"field": "model_id",
"table": "llm_model",
"valuefield": "id",
"textfield": "name"
},
{
"field": "account_id",
"table": "llm_account",
"valuefield": "id",
"textfield": "name"
},
{
"field": "status",
"table": "appcodes_kv",
"valuefield": "k",
"textfield": "v",
"cond": "parentid='llm_usage_status'"
}
]
}