fix: adiciona fallback para endpoint v1 e modelo universal gemini-1.5-flash na API do Gemini
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m5s
Details
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m5s
Details
This commit is contained in:
parent
f04dea7e8a
commit
50eafc51bd
|
|
@ -1416,7 +1416,7 @@ Exemplo de formato esperado:
|
|||
|
||||
} else {
|
||||
// Provedor padrão: Google Gemini
|
||||
const geminiUrl = `https://generativelanguage.googleapis.com/v1beta/models/${modelName}:generateContent?key=${apiKey}`;
|
||||
let geminiUrl = `https://generativelanguage.googleapis.com/v1beta/models/${modelName}:generateContent?key=${apiKey}`;
|
||||
const payload = {
|
||||
contents: [
|
||||
{
|
||||
|
|
@ -1457,7 +1457,7 @@ Apenas retorne o JSON estruturado contendo a lista de questões no seguinte form
|
|||
}
|
||||
};
|
||||
|
||||
const response = await fetch(geminiUrl, {
|
||||
let response = await fetch(geminiUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
|
@ -1465,6 +1465,45 @@ Apenas retorne o JSON estruturado contendo a lista de questões no seguinte form
|
|||
body: JSON.stringify(payload)
|
||||
});
|
||||
|
||||
// Se der 404, tentar API v1 estável
|
||||
if (!response.ok && response.status === 404) {
|
||||
console.warn(`[Gemini] v1beta retornou 404 para o modelo ${modelName}. Tentando endpoint /v1/...`);
|
||||
geminiUrl = `https://generativelanguage.googleapis.com/v1/models/${modelName}:generateContent?key=${apiKey}`;
|
||||
response = await fetch(geminiUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
}
|
||||
|
||||
// Se ainda assim der 404 e o modelo for diferente de gemini-1.5-flash, tentar com gemini-1.5-flash de fallback universal
|
||||
if (!response.ok && response.status === 404 && modelName !== 'gemini-1.5-flash') {
|
||||
console.warn(`[Gemini] Modelo ${modelName} não encontrado no AI Studio. Tentando com fallback universal gemini-1.5-flash no endpoint v1...`);
|
||||
geminiUrl = `https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent?key=${apiKey}`;
|
||||
response = await fetch(geminiUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
|
||||
if (!response.ok && response.status === 404) {
|
||||
// Última tentativa: gemini-1.5-flash no endpoint v1beta
|
||||
console.warn(`[Gemini] Tentando gemini-1.5-flash no endpoint v1beta...`);
|
||||
geminiUrl = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${apiKey}`;
|
||||
response = await fetch(geminiUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
throw new Error(`Gemini API retornou erro: ${response.status} - ${errorText}`);
|
||||
|
|
|
|||
Loading…
Reference in New Issue