From 110720982f568d49a5bd45403393ea2882380f4a Mon Sep 17 00:00:00 2001 From: HenryZ-0302 <211446046+HenryZ-0302@users.noreply.github.com> Date: Sun, 5 Apr 2026 14:06:21 -0700 Subject: [PATCH] fix: read managed models from provider pools for model lists --- src/utils/common.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/utils/common.js b/src/utils/common.js index 7a54b71..f6b801f 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -100,6 +100,17 @@ function getConfiguredSupportedModels(providerType, providerConfig = {}) { )].sort((a, b) => a.localeCompare(b)); } +function getConfiguredSupportedModelsFromPool(providerPoolManager, providerType) { + if (!providerPoolManager?.providerStatus?.[providerType]) { + return []; + } + + return [...new Set( + providerPoolManager.providerStatus[providerType] + .flatMap(providerStatus => getConfiguredSupportedModels(providerType, providerStatus.config)) + )].sort((a, b) => a.localeCompare(b)); +} + /** * Extracts the protocol prefix from a given model provider string. * This is used to determine if two providers belong to the same underlying protocol (e.g., gemini, openai, claude). @@ -882,7 +893,10 @@ export async function handleModelListRequest(req, res, service, endpointType, CO } else { // --- 单提供商逻辑 --- const toProvider = CONFIG.MODEL_PROVIDER; - const configuredSupportedModels = getConfiguredSupportedModels(toProvider, CONFIG); + const pooledSupportedModels = getConfiguredSupportedModelsFromPool(providerPoolManager, toProvider); + const configuredSupportedModels = pooledSupportedModels.length > 0 + ? pooledSupportedModels + : getConfiguredSupportedModels(toProvider, CONFIG); if (usesManagedModelList(toProvider) && configuredSupportedModels.length > 0) { logger.info(`[ModelList] Returning configured supported models for ${toProvider}: ${configuredSupportedModels.join(', ')}`);