From af897430395a42265b23f5973da363fc2e71b36f Mon Sep 17 00:00:00 2001 From: yz778 Date: Tue, 28 Jan 2025 21:27:05 -0800 Subject: [PATCH 1/2] fix: alternate handler for retrieving Gemini models --- src/libs/openai.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libs/openai.ts b/src/libs/openai.ts index cf5b697..a5d4bef 100644 --- a/src/libs/openai.ts +++ b/src/libs/openai.ts @@ -2,6 +2,7 @@ type Model = { id: string name?: string display_name?: string + displayName?: string type: string } @@ -24,6 +25,20 @@ export const getAllOpenAIModels = async (baseUrl: string, apiKey?: string) => { clearTimeout(timeoutId) + // if Gemini fails to return models, try another approach + if (res.status === 401 && res.url == 'https://generativelanguage.googleapis.com/v1beta/openai/models') { + const urlGoogle = `https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}` + const resGoogle = await fetch(urlGoogle, { + signal: controller.signal + }) + + const data = await resGoogle.json() + return data.models.map(model => ({ + id: model.name.replace(/^models\//, ""), + name: model.displayName, + })) as Model[] + } + if (!res.ok) { return [] } From 61458834fc6e1de2c801bfefbe917c79bd5d81e3 Mon Sep 17 00:00:00 2001 From: yz778 Date: Tue, 28 Jan 2025 21:47:14 -0800 Subject: [PATCH 2/2] Update to use model ID as name --- src/libs/openai.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/libs/openai.ts b/src/libs/openai.ts index a5d4bef..63905c8 100644 --- a/src/libs/openai.ts +++ b/src/libs/openai.ts @@ -2,7 +2,6 @@ type Model = { id: string name?: string display_name?: string - displayName?: string type: string } @@ -25,7 +24,7 @@ export const getAllOpenAIModels = async (baseUrl: string, apiKey?: string) => { clearTimeout(timeoutId) - // if Gemini fails to return models, try another approach + // if Google API fails to return models, try another approach if (res.status === 401 && res.url == 'https://generativelanguage.googleapis.com/v1beta/openai/models') { const urlGoogle = `https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}` const resGoogle = await fetch(urlGoogle, { @@ -35,7 +34,7 @@ export const getAllOpenAIModels = async (baseUrl: string, apiKey?: string) => { const data = await resGoogle.json() return data.models.map(model => ({ id: model.name.replace(/^models\//, ""), - name: model.displayName, + name: model.name.replace(/^models\//, ""), })) as Model[] }