llmage/models/user_llm_policy.json
yumoqing 354f556099 feat: 新增 llm_metrics 和 user_llm_policy 两张表
llm_metrics: 从 llmusage 抽取的轻量指标表
- userid, llmid, use_date, input/output/total tokens
- amount, responsed_seconds, finish_seconds

user_llm_policy: 用户模型策略(customer.admin 管理)
- 每个用户每个模型可单独设限
- daily/monthly_call_limit, spending_alert/ceiling, max_concurrency
- 缺省空=不限
- orgid+userid+llmid 唯一约束

菜单新增: 用户模型策略、模型使用指标
2026-07-02 13:16:18 +08:00

36 lines
2.0 KiB
JSON

{
"summary": [
{
"name": "user_llm_policy",
"title": "用户模型策略",
"primary": ["id"]
}
],
"fields": [
{"name": "id", "title": "id", "type": "str", "length": 32},
{"name": "orgid", "title": "所属机构", "type": "str", "length": 32},
{"name": "userid", "title": "用户", "type": "str", "length": 32},
{"name": "llmid", "title": "模型", "type": "str", "length": 32, "nullable": true},
{"name": "daily_call_limit", "title": "日调用上限", "type": "int", "nullable": true},
{"name": "monthly_call_limit", "title": "月调用上限", "type": "int", "nullable": true},
{"name": "spending_alert", "title": "花费预警", "type": "float", "length": 18, "dec": 2, "nullable": true},
{"name": "spending_ceiling", "title": "费用上限", "type": "float", "length": 18, "dec": 2, "nullable": true},
{"name": "max_concurrency", "title": "并发上限", "type": "int", "nullable": true},
{"name": "status", "title": "状态", "type": "str", "length": 10, "default": "active"},
{"name": "created_at", "title": "创建时间", "type": "timestamp", "nullable": true},
{"name": "updated_at", "title": "更新时间", "type": "timestamp", "nullable": true},
{"name": "created_by", "title": "创建人", "type": "str", "length": 32, "nullable": true},
{"name": "remark", "title": "备注", "type": "str", "length": 500, "nullable": true}
],
"indexes": [
{"name": "idx1", "idxtype": "unique", "idxfields": ["orgid", "userid", "llmid"]},
{"name": "idx2", "idxtype": "index", "idxfields": ["orgid"]},
{"name": "idx3", "idxtype": "index", "idxfields": ["userid"]}
],
"codes": [
{"field": "userid", "table": "users", "valuefield": "id", "textfield": "username"},
{"field": "llmid", "table": "llm", "valuefield": "id", "textfield": "model"},
{"field": "orgid", "table": "organization", "valuefield": "id", "textfield": "orgname"}
]
}