diff --git a/src/api-manager.js b/src/api-manager.js index b4f849d..98d660b 100644 --- a/src/api-manager.js +++ b/src/api-manager.js @@ -4,6 +4,7 @@ import { API_ACTIONS, ENDPOINT_TYPE } from './common.js'; +import { getProviderPoolManager } from './service-manager.js'; /** * Handle API authentication and routing @@ -58,18 +59,16 @@ export async function handleAPIRequests(method, path, req, res, currentConfig, a /** * Initialize API management features - * @param {Object} config - The server configuration * @param {Object} services - The initialized services - * @param {Object} providerPoolManager - The provider pool manager instance * @returns {Function} - The heartbeat and token refresh function */ -export function initializeAPIManagement(config, services, providerPoolManager) { +export function initializeAPIManagement(services) { return async function heartbeatAndRefreshToken() { - console.log(`[Heartbeat] Server is running. Current time: ${new Date().toLocaleString()}`); + console.log(`[Heartbeat] Server is running. Current time: ${new Date().toLocaleString()}`, Object.keys(services)); // 循环遍历所有已初始化的服务适配器,并尝试刷新令牌 - if (providerPoolManager) { - await providerPoolManager.performHealthChecks(); // 定期执行健康检查 - } + // if (getProviderPoolManager()) { + // await getProviderPoolManager().performHealthChecks(); // 定期执行健康检查 + // } for (const providerKey in services) { const serviceAdapter = services[providerKey]; try { diff --git a/src/api-server.js b/src/api-server.js index de42630..55a3f48 100644 --- a/src/api-server.js +++ b/src/api-server.js @@ -111,10 +111,7 @@ import { createRequestHandler } from './request-handler.js'; */ import 'dotenv/config'; // Import dotenv and configure it -import deepmerge from 'deepmerge'; import './converters/register-converters.js'; // 注册所有转换器 - -// 导入各个模块功能 import { getProviderPoolManager } from './service-manager.js'; // --- Server Initialization --- @@ -129,7 +126,7 @@ async function startServer() { initializeUIManagement(CONFIG); // Initialize API management and get heartbeat function - const heartbeatAndRefreshToken = initializeAPIManagement(CONFIG, services, getProviderPoolManager()); + const heartbeatAndRefreshToken = initializeAPIManagement(services); // Create request handler const requestHandlerInstance = createRequestHandler(CONFIG, getProviderPoolManager()); diff --git a/src/config-manager.js b/src/config-manager.js index be935db..035e14f 100644 --- a/src/config-manager.js +++ b/src/config-manager.js @@ -85,7 +85,7 @@ export async function initializeConfig(args = process.argv.slice(2), configFileP REQUEST_BASE_DELAY: 1000, CRON_NEAR_MINUTES: 15, CRON_REFRESH_TOKEN: false, - PROVIDER_POOLS_FILE_PATH: 'provider_pools.json', // 新增号池配置文件路径 + PROVIDER_POOLS_FILE_PATH: null, // 新增号池配置文件路径 MAX_ERROR_COUNT: 3 // 提供商最大错误次数 }; console.log('[Config] Using default configuration.'); @@ -270,9 +270,9 @@ export async function initializeConfig(args = process.argv.slice(2), configFileP currentConfig.SYSTEM_PROMPT_CONTENT = await getSystemPromptFileContent(currentConfig.SYSTEM_PROMPT_FILE_PATH); // 加载号池配置 - if (!currentConfig.PROVIDER_POOLS_FILE_PATH) { - currentConfig.PROVIDER_POOLS_FILE_PATH = 'provider_pools.json'; - } + // if (!currentConfig.PROVIDER_POOLS_FILE_PATH) { + // currentConfig.PROVIDER_POOLS_FILE_PATH = 'provider_pools.json'; + // } if (currentConfig.PROVIDER_POOLS_FILE_PATH) { try { const poolsData = await pfs.readFile(currentConfig.PROVIDER_POOLS_FILE_PATH, 'utf8'); diff --git a/src/ui-manager.js b/src/ui-manager.js index bfe1d23..c02ae9d 100644 --- a/src/ui-manager.js +++ b/src/ui-manager.js @@ -609,11 +609,12 @@ export async function handleUIApiRequests(method, pathParam, req, res, currentCo // Get provider pools summary if (method === 'GET' && pathParam === '/api/providers') { let providerPools = {}; + const filePath = currentConfig.PROVIDER_POOLS_FILE_PATH || 'provider_pools.json'; try { if (providerPoolManager && providerPoolManager.providerPools) { providerPools = providerPoolManager.providerPools; - } else if (currentConfig.PROVIDER_POOLS_FILE_PATH && existsSync(currentConfig.PROVIDER_POOLS_FILE_PATH)) { - const poolsData = JSON.parse(readFileSync(currentConfig.PROVIDER_POOLS_FILE_PATH, 'utf-8')); + } else if (filePath && existsSync(filePath)) { + const poolsData = JSON.parse(readFileSync(filePath, 'utf-8')); providerPools = poolsData; } } catch (error) { @@ -630,12 +631,12 @@ export async function handleUIApiRequests(method, pathParam, req, res, currentCo if (method === 'GET' && providerTypeMatch) { const providerType = decodeURIComponent(providerTypeMatch[1]); let providerPools = {}; - + const filePath = currentConfig.PROVIDER_POOLS_FILE_PATH || 'provider_pools.json'; try { if (providerPoolManager && providerPoolManager.providerPools) { providerPools = providerPoolManager.providerPools; - } else if (currentConfig.PROVIDER_POOLS_FILE_PATH && existsSync(currentConfig.PROVIDER_POOLS_FILE_PATH)) { - const poolsData = JSON.parse(readFileSync(currentConfig.PROVIDER_POOLS_FILE_PATH, 'utf-8')); + } else if (filePath && existsSync(filePath)) { + const poolsData = JSON.parse(readFileSync(filePath, 'utf-8')); providerPools = poolsData; } } catch (error) { diff --git a/static/app/config-manager.js b/static/app/config-manager.js index d7dadbc..d7214d7 100644 --- a/static/app/config-manager.js +++ b/static/app/config-manager.js @@ -85,7 +85,7 @@ async function loadConfiguration() { if (requestBaseDelayEl) requestBaseDelayEl.value = data.REQUEST_BASE_DELAY || 1000; if (cronNearMinutesEl) cronNearMinutesEl.value = data.CRON_NEAR_MINUTES || 1; if (cronRefreshTokenEl) cronRefreshTokenEl.checked = data.CRON_REFRESH_TOKEN || false; - if (providerPoolsFilePathEl) providerPoolsFilePathEl.value = data.PROVIDER_POOLS_FILE_PATH || 'provider_pools.json'; + if (providerPoolsFilePathEl) providerPoolsFilePathEl.value = data.PROVIDER_POOLS_FILE_PATH; if (maxErrorCountEl) maxErrorCountEl.value = data.MAX_ERROR_COUNT || 3; // 触发提供商配置显示 diff --git a/static/app/modal.js b/static/app/modal.js index a5910bb..51e57f8 100644 --- a/static/app/modal.js +++ b/static/app/modal.js @@ -667,8 +667,8 @@ function showAddProviderForm(providerType) {
diff --git a/static/index.html b/static/index.html index 1b58b3d..9387cb4 100644 --- a/static/index.html +++ b/static/index.html @@ -614,7 +614,7 @@
- +