feat(catalog): 统一模型调用身份并梳理生命周期

新增官方调用名、供应商真实名、显示名和兼容别名的独立契约,调整路由、目录聚合、管理端与 OpenAPI。

增加 Gemini、Qwen、DeepSeek、Claude 和 MiniMax 生命周期迁移、别名观测及引用保护,并补充数据库与聚合测试。
This commit is contained in:
2026-07-22 20:23:36 +08:00
parent e3f6c0fa3e
commit 8d86c4b3b3
20 changed files with 1282 additions and 284 deletions
+47
View File
@@ -584,6 +584,12 @@
"$ref": "#/definitions/httpapi.ErrorEnvelope"
}
},
"409": {
"description": "Conflict",
"schema": {
"$ref": "#/definitions/httpapi.ErrorEnvelope"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
@@ -10391,6 +10397,12 @@
"id": {
"type": "string"
},
"legacyAliases": {
"type": "array",
"items": {
"type": "string"
}
},
"modelAlias": {
"type": "string"
},
@@ -10412,6 +10424,9 @@
"providerKey": {
"type": "string"
},
"providerModelName": {
"type": "string"
},
"providerName": {
"type": "string"
},
@@ -12147,14 +12162,27 @@
"type": "object",
"additionalProperties": {}
},
"displayName": {
"type": "string"
},
"id": {
"type": "string"
},
"invocationName": {
"type": "string"
},
"legacyAliases": {
"type": "array",
"items": {
"type": "string"
}
},
"metadata": {
"type": "object",
"additionalProperties": {}
},
"modelAlias": {
"description": "Deprecated: use InvocationName.",
"type": "string"
},
"modelType": {
@@ -12175,6 +12203,9 @@
"providerModelName": {
"type": "string"
},
"referenceCount": {
"type": "integer"
},
"runtimePolicyOverride": {
"type": "object",
"additionalProperties": {}
@@ -12218,6 +12249,15 @@
"displayName": {
"type": "string"
},
"invocationName": {
"type": "string"
},
"legacyAliases": {
"type": "array",
"items": {
"type": "string"
}
},
"metadata": {
"type": "object",
"additionalProperties": {}
@@ -13529,7 +13569,14 @@
"id": {
"type": "string"
},
"legacyAliases": {
"type": "array",
"items": {
"type": "string"
}
},
"modelAlias": {
"description": "Deprecated: use ModelName. This field mirrors the canonical invocation name during the compatibility window.",
"type": "string"
},
"modelName": {
+33
View File
@@ -748,6 +748,10 @@ definitions:
type: boolean
id:
type: string
legacyAliases:
items:
type: string
type: array
modelAlias:
type: string
modelName:
@@ -762,6 +766,8 @@ definitions:
type: string
providerKey:
type: string
providerModelName:
type: string
providerName:
type: string
rateLimits:
@@ -1964,12 +1970,21 @@ definitions:
defaultSnapshot:
additionalProperties: {}
type: object
displayName:
type: string
id:
type: string
invocationName:
type: string
legacyAliases:
items:
type: string
type: array
metadata:
additionalProperties: {}
type: object
modelAlias:
description: 'Deprecated: use InvocationName.'
type: string
modelType:
items:
@@ -1983,6 +1998,8 @@ definitions:
type: string
providerModelName:
type: string
referenceCount:
type: integer
runtimePolicyOverride:
additionalProperties: {}
type: object
@@ -2013,6 +2030,12 @@ definitions:
type: object
displayName:
type: string
invocationName:
type: string
legacyAliases:
items:
type: string
type: array
metadata:
additionalProperties: {}
type: object
@@ -2898,7 +2921,13 @@ definitions:
type: boolean
id:
type: string
legacyAliases:
items:
type: string
type: array
modelAlias:
description: 'Deprecated: use ModelName. This field mirrors the canonical
invocation name during the compatibility window.'
type: string
modelName:
type: string
@@ -3931,6 +3960,10 @@ paths:
description: Not Found
schema:
$ref: '#/definitions/httpapi.ErrorEnvelope'
"409":
description: Conflict
schema:
$ref: '#/definitions/httpapi.ErrorEnvelope'
"500":
description: Internal Server Error
schema: