List Models
列出当前网关可用的模型资产目录。若未显式指定 provider 过滤参数,系统将汇总聚合所有已接入供应商的可用模型;当请求携带虚拟密钥(Authorization: Bearer sk-bf-* 或 x-bf-vk)时,网关将遵循最小权限管控策略,仅返回且仅探测该虚拟密钥被授权访问的模型列表。
请求头 (Headers)
Authorizationstringheader Bearer Token 鉴权凭证。推荐方式,支持传入 OmniCortex 虚拟密钥(以
sk-bf- 开头)或授权的管理凭据。 x-api-keystringheader 通过请求头传递 API 密钥。同样支持直接传入 OmniCortex 虚拟密钥。
x-bf-vkstringheader OmniCortex 虚拟密钥专属请求头,用于精细化配额控制与模型可见性隔离。
查询参数 (Query Parameters)
providerstringquery 按模型供应商代码进行精准过滤。例如
openai、anthropic、deepseek、bedrock、gemini 等。缺省时返回全量供应商模型。 page_sizeintegerquerydefault: 50 单页返回的最大模型记录条数。
page_tokenstringquery 分页游标令牌。用于在多页遍历时传入上一页返回的
next_page_token。 响应模型核心字段 (Response Model Fields)
idstringbodyrequired 网关统一路由命名空间下的模型全局唯一标识符,格式为
provider/model(例如 openai/gpt-4o、deepseek/deepseek-chat、anthropic/claude-3-7-sonnet)。 namestringbody 模型显示名称或供应商原始标识。
context_lengthintegerbody 模型支持的最大上下文窗口总 token 长度(包含输入与输出)。
max_input_tokensintegerbody 单次请求允许输入的最大 prompt token 上限。
max_output_tokensintegerbody 单次推理允许生成的最大 completion token 上限。
architectureobjectbody 模型的多模态输入输出能力描述:
input_modalities: 支持的输入模态列表,例如["text"]或["text", "image", "audio"]。output_modalities: 支持的输出模态列表,例如["text"]。
pricingobjectbody 企业标准定价或核算中心覆盖的费率策略(包含输入、输出、推理思考及提示词缓存读写价格)。
reasoningobjectbody 深度思考推理能力标识:
mandatory(boolean): 是否强制开启思考模式。supported_efforts(array): 支持的推理强度档位列表(如["low", "medium", "high"])。
List Models
HTTP / SDK
bash
curl --request GET \
--url 'http://localhost:8080/v1/models?provider=deepseek' \
--header 'Authorization: Bearer sk-bf-your-virtual-key'python
from openai import OpenAI
# 全面兼容 OpenAI SDK 标准 models.list() 接口
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="sk-bf-your-virtual-key"
)
# 仅返回该虚拟密钥具有访问权限的模型
models = client.models.list()
for model in models:
print(f"Model ID: {model.id}, Owned by: {model.owned_by if hasattr(model, 'owned_by') else 'N/A'}")typescript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:8080/v1',
apiKey: 'sk-bf-your-virtual-key',
});
async function main() {
const models = await client.models.list();
console.log(models.data.map(m => m.id));
}
main();Response
json
{
"data": [
{
"id": "deepseek/deepseek-chat",
"name": "deepseek-chat",
"canonical_slug": "deepseek-v3",
"normalized_name": "DeepSeek-V3",
"created": 1726915200,
"context_length": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 8192,
"architecture": {
"modality": "text->text",
"tokenizer": "deepseek",
"input_modalities": ["text"],
"output_modalities": ["text"]
},
"pricing": {
"prompt": "0.00000014",
"completion": "0.00000028",
"input_cache_read": "0.000000014"
},
"supported_parameters": [
"temperature",
"top_p",
"max_tokens",
"stream",
"tools",
"tool_choice"
]
},
{
"id": "deepseek/deepseek-reasoner",
"name": "deepseek-reasoner",
"canonical_slug": "deepseek-r1",
"normalized_name": "DeepSeek-R1",
"created": 1726915200,
"context_length": 65536,
"max_input_tokens": 65536,
"max_output_tokens": 8192,
"architecture": {
"modality": "text->text",
"tokenizer": "deepseek",
"input_modalities": ["text"],
"output_modalities": ["text"]
},
"reasoning": {
"mandatory": true,
"default_enabled": true
},
"supported_parameters": [
"temperature",
"stream",
"max_tokens"
]
}
],
"next_page_token": null,
"extra_fields": {
"request_type": "list_models",
"latency": 12
}
}