Sub2API v1.0 - AI API 网关(二开初始版本,基于上游 Wei-Shaw/sub2api)
Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s

This commit is contained in:
李建琦
2026-08-21 18:30:13 +08:00
commit 6d655c9903
3584 changed files with 1270640 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
/**
* Model Plaza API(公开端点,可匿名访问)
* 以分组为中心的模型价目:分组信息 + 模型渠道定价 + LiteLLM 官方参考价。
* 带 token 请求时后端会额外返回专属分组与用户专属倍率。
*/
import { apiClient } from './client'
import type { UserSupportedModelPricing } from './channels'
/** LiteLLM 官方参考价(USD per token,字段缺失 = 官方数据未覆盖)。 */
export interface PlazaOfficialPricing {
input_price: number | null
output_price: number | null
/** 5m 缓存写入(= LiteLLM cache_creation)。 */
cache_write_price: number | null
/** 1h 缓存写入(LiteLLM cache_creation_above_1hr),多数模型缺失。 */
cache_write_1h_price?: number | null
cache_read_price: number | null
}
export interface PlazaModel {
name: string
platform: string
pricing: UserSupportedModelPricing | null
official_pricing: PlazaOfficialPricing | null
}
export interface ModelPlazaGroup {
id: number
name: string
description: string
platform: string
/** 'standard' | 'subscription' */
subscription_type: string
rate_multiplier: number
/** 登录且管理员为该用户配了专属倍率时返回;生效倍率 = user_rate ?? rate_multiplier。 */
user_rate_multiplier?: number
peak_rate_enabled: boolean
peak_start: string
peak_end: string
peak_rate_multiplier: number
is_exclusive: boolean
/** 生图独立倍率:true 时图片计费模型的实付倍率取 image_rate_multiplier,不取分组/专属倍率。 */
image_rate_independent: boolean
image_rate_multiplier: number
models: PlazaModel[]
}
export interface ModelPlazaResponse {
/** 管理员配置的全局价格说明(Markdown)。 */
description: string
groups: ModelPlazaGroup[]
}
/** 获取模型广场数据。开关未启用时后端返回 404。 */
export async function getModelPlaza(options?: { signal?: AbortSignal }): Promise<ModelPlazaResponse> {
const { data } = await apiClient.get<ModelPlazaResponse>('/model-plaza', {
signal: options?.signal
})
return data
}
export const modelPlazaAPI = { getModelPlaza }
export default modelPlazaAPI