feat(app): add GET config route

This commit is contained in:
ItzCrazyKns
2025-03-18 10:25:09 +05:30
parent 6c227cab6f
commit 97f6196d9b
2 changed files with 57 additions and 2 deletions

View File

@ -0,0 +1,55 @@
import { getAnthropicApiKey, getCustomOpenaiApiKey, getCustomOpenaiApiUrl, getCustomOpenaiModelName, getGeminiApiKey, getGroqApiKey, getOllamaApiEndpoint, getOpenaiApiKey } from "@/lib/config"
import { getAvailableChatModelProviders, getAvailableEmbeddingModelProviders } from "@/lib/providers"
export const GET = async (req: Request) => {
try {
const config: Record<string, any> = {}
const [chatModelProviders, embeddingModelProviders] = await Promise.all([
getAvailableChatModelProviders(),
getAvailableEmbeddingModelProviders(),
])
config['chatModelProviders'] = {}
config['embeddingModelProviders'] = {}
for (const provider in chatModelProviders) {
config['chatModelProviders'][provider] = Object.keys(
chatModelProviders[provider],
).map(model => {
return {
name: model,
displayName: chatModelProviders[provider][model].displayName,
}
})
}
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['anthropicApiKey'] = getAnthropicApiKey()
config['groqApiKey'] = getGroqApiKey()
config['geminiApiKey'] = getGeminiApiKey()
config['customOpenaiApiUrl'] = getCustomOpenaiApiUrl()
config['customOpenaiApiKey'] = getCustomOpenaiApiKey()
config['customOpenaiModelName'] = getCustomOpenaiModelName()
return Response.json({ ...config }, { status: 200 })
} catch (err) {
console.error('An error ocurred while getting config:', err)
return Response.json(
{ message: 'An error ocurred while getting config' },
{ status: 500 },
)
}
}

View File

@ -116,7 +116,7 @@ const Page = () => {
useEffect(() => {
const fetchConfig = async () => {
setIsLoading(true);
const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/config`, {
const res = await fetch(`/api/config`, {
headers: {
'Content-Type': 'application/json',
},
@ -208,7 +208,7 @@ const Page = () => {
key.toLowerCase().includes('api') ||
key.toLowerCase().includes('url')
) {
const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/config`, {
const res = await fetch(`/api/config`, {
headers: {
'Content-Type': 'application/json',
},