- 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表(向后兼容零改动)
150 lines
3.4 KiB
JSON
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'"
|
|
}
|
|
]
|
|
}
|