- 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表(向后兼容零改动)
99 lines
2.2 KiB
JSON
99 lines
2.2 KiB
JSON
{
|
|
"summary": [
|
|
{
|
|
"name": "llm_vendor",
|
|
"title": "模型供应商",
|
|
"primary": [
|
|
"id"
|
|
],
|
|
"catelog": "entity"
|
|
}
|
|
],
|
|
"fields": [
|
|
{
|
|
"name": "id",
|
|
"title": "主键ID",
|
|
"type": "str",
|
|
"length": 32,
|
|
"nullable": "no"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"title": "供应商名称",
|
|
"type": "str",
|
|
"length": 100,
|
|
"nullable": "no"
|
|
},
|
|
{
|
|
"name": "protocol",
|
|
"title": "协议类型",
|
|
"type": "str",
|
|
"length": 20,
|
|
"nullable": "no",
|
|
"default": "'openai_compat'"
|
|
},
|
|
{
|
|
"name": "endpoints",
|
|
"title": "端点目录(JSON)",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"name": "description",
|
|
"title": "描述",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"name": "status",
|
|
"title": "状态",
|
|
"type": "str",
|
|
"length": 20,
|
|
"nullable": "no",
|
|
"default": "'active'"
|
|
},
|
|
{
|
|
"name": "org_id",
|
|
"title": "所属机构",
|
|
"type": "str",
|
|
"length": 32,
|
|
"nullable": "no",
|
|
"default": "'0'"
|
|
},
|
|
{
|
|
"name": "created_at",
|
|
"title": "创建时间",
|
|
"type": "timestamp",
|
|
"nullable": "no"
|
|
},
|
|
{
|
|
"name": "updated_at",
|
|
"title": "更新时间",
|
|
"type": "timestamp"
|
|
}
|
|
],
|
|
"indexes": [
|
|
{
|
|
"name": "idx_llm_vendor_status",
|
|
"idxtype": "index",
|
|
"idxfields": [
|
|
"status"
|
|
]
|
|
}
|
|
],
|
|
"codes": [
|
|
{
|
|
"field": "protocol",
|
|
"table": "appcodes_kv",
|
|
"valuefield": "k",
|
|
"textfield": "v",
|
|
"cond": "parentid='llm_protocol'"
|
|
},
|
|
{
|
|
"field": "status",
|
|
"table": "appcodes_kv",
|
|
"valuefield": "k",
|
|
"textfield": "v",
|
|
"cond": "parentid='llm_status'"
|
|
}
|
|
]
|
|
}
|