From d97fa708f1718bc6bf08e0325a02b56c156e8d5a Mon Sep 17 00:00:00 2001 From: ItzCrazyKns <95534749+ItzCrazyKns@users.noreply.github.com> Date: Thu, 16 Oct 2025 20:42:04 +0530 Subject: [PATCH] feat(config-route): use new config manager & model registry --- src/app/api/config/route.ts | 145 ++++++------------------------------ 1 file changed, 22 insertions(+), 123 deletions(-) diff --git a/src/app/api/config/route.ts b/src/app/api/config/route.ts index 5f66fdf..184155e 100644 --- a/src/app/api/config/route.ts +++ b/src/app/api/config/route.ts @@ -1,134 +1,33 @@ -import { - getAnthropicApiKey, - getCustomOpenaiApiKey, - getCustomOpenaiApiUrl, - getCustomOpenaiModelName, - getGeminiApiKey, - getGroqApiKey, - getOllamaApiEndpoint, - getOpenaiApiKey, - getDeepseekApiKey, - getAimlApiKey, - getLMStudioApiEndpoint, - getLemonadeApiEndpoint, - getLemonadeApiKey, - updateConfig, - getOllamaApiKey, -} from '@/lib/config'; -import { - getAvailableChatModelProviders, - getAvailableEmbeddingModelProviders, -} from '@/lib/providers'; +import configManager from '@/lib/config'; +import ModelRegistry from '@/lib/models/registry'; +import { NextRequest, NextResponse } from 'next/server'; -export const GET = async (req: Request) => { +export const GET = async (req: NextRequest) => { try { - const config: Record = {}; + const values = configManager.currentConfig; + const fields = configManager.getUIConfigSections(); - const [chatModelProviders, embeddingModelProviders] = await Promise.all([ - getAvailableChatModelProviders(), - getAvailableEmbeddingModelProviders(), - ]); + const modelRegistry = new ModelRegistry(); + const modelProviders = await modelRegistry.getActiveProviders(); - config['chatModelProviders'] = {}; - config['embeddingModelProviders'] = {}; + values.modelProviders = values.modelProviders.map((mp) => { + const activeProvider = modelProviders.find((p) => p.id === mp.id) - for (const provider in chatModelProviders) { - config['chatModelProviders'][provider] = Object.keys( - chatModelProviders[provider], - ).map((model) => { - return { - name: model, - displayName: chatModelProviders[provider][model].displayName, - }; - }); - } + return { + ...mp, + chatModels: activeProvider?.chatModels ?? mp.chatModels, + embeddingModels: activeProvider?.embeddingModels ?? mp.embeddingModels + } + }) - for (const provider in embeddingModelProviders) { - config['embeddingModelProviders'][provider] = Object.keys( - embeddingModelProviders[provider], - ).map((model) => { - return { - name: model, - displayName: embeddingModelProviders[provider][model].displayName, - }; - }); - } - - config['openaiApiKey'] = getOpenaiApiKey(); - config['ollamaApiUrl'] = getOllamaApiEndpoint(); - config['ollamaApiKey'] = getOllamaApiKey(); - config['lmStudioApiUrl'] = getLMStudioApiEndpoint(); - config['lemonadeApiUrl'] = getLemonadeApiEndpoint(); - config['lemonadeApiKey'] = getLemonadeApiKey(); - config['anthropicApiKey'] = getAnthropicApiKey(); - config['groqApiKey'] = getGroqApiKey(); - config['geminiApiKey'] = getGeminiApiKey(); - config['deepseekApiKey'] = getDeepseekApiKey(); - config['aimlApiKey'] = getAimlApiKey(); - config['customOpenaiApiUrl'] = getCustomOpenaiApiUrl(); - config['customOpenaiApiKey'] = getCustomOpenaiApiKey(); - config['customOpenaiModelName'] = getCustomOpenaiModelName(); - - return Response.json({ ...config }, { status: 200 }); + return NextResponse.json({ + values, + fields, + }) } catch (err) { - console.error('An error occurred while getting config:', err); + console.error('Error in getting config: ', err); return Response.json( - { message: 'An error occurred while getting config' }, - { status: 500 }, - ); - } -}; - -export const POST = async (req: Request) => { - try { - const config = await req.json(); - - const updatedConfig = { - MODELS: { - OPENAI: { - API_KEY: config.openaiApiKey, - }, - GROQ: { - API_KEY: config.groqApiKey, - }, - ANTHROPIC: { - API_KEY: config.anthropicApiKey, - }, - GEMINI: { - API_KEY: config.geminiApiKey, - }, - OLLAMA: { - API_URL: config.ollamaApiUrl, - API_KEY: config.ollamaApiKey, - }, - DEEPSEEK: { - API_KEY: config.deepseekApiKey, - }, - AIMLAPI: { - API_KEY: config.aimlApiKey, - }, - LM_STUDIO: { - API_URL: config.lmStudioApiUrl, - }, - LEMONADE: { - API_URL: config.lemonadeApiUrl, - API_KEY: config.lemonadeApiKey, - }, - CUSTOM_OPENAI: { - API_URL: config.customOpenaiApiUrl, - API_KEY: config.customOpenaiApiKey, - MODEL_NAME: config.customOpenaiModelName, - }, - }, - }; - - updateConfig(updatedConfig); - - return Response.json({ message: 'Config updated' }, { status: 200 }); - } catch (err) { - console.error('An error occurred while updating config:', err); - return Response.json( - { message: 'An error occurred while updating config' }, + { message: 'An error has occurred.' }, { status: 500 }, ); }