src/_main/, ten en cuenta que al actualizar a una nueva versión de BaP en el futuro, cualquier cambio manual en los archivos del núcleo se sobrescribirá y perderá. Se sugiere contactar al referente o mantenedor del framework para sugerir mejoras o cambios antes de alterar el motor localmente.Módulo ai.js (Google Gemini API)
Motor de cliente agnóstico para interactuar con la API de Google Gemini. Ofrece resiliencia mediante reintentos con exponential backoff (ante errores 503 o alta demanda), conmutación automática entre lista de modelos de respaldo (failover list) y soporte para prompts de texto, contenido multimodal (archivos/imágenes en base64) e historial de conversación.
Funciones Exportadas (export function)
1. generateContent(promptText, options)
Firma: generateContent(promptText: string, options?: object): Promise<string>
Propósito: Envía una consulta a la API de Google Gemini con opciones avanzadas de resiliencia y configuración.
| Parámetro (options) | Tipo | Predeterminado | Descripción |
|---|---|---|---|
promptText | string | - | Texto de la consulta del usuario. |
base64FileData | string | null | Archivo en formato Base64 para contenido multimodal. |
mimeType | string | null | Tipo MIME del archivo (ej. image/png, application/pdf). |
history | Array | [] | Historial de mensajes previos [{ role: 'user'|'model', text: '...' }]. |
customModels | Array | CONSTANT.AI.MODELS | Lista ordenada de modelos para conmutación por error (failover list). |
customSystemInstruction | string | CONSTANT.AI.SYSTEM_INSTRUCTION | Instrucción de sistema para el modelo. |
temperature | number | CONSTANT.AI.TEMPERATURE | Grado de creatividad (0.0 a 1.0). |
onStatusUpdate | Function | null | Callback para notificar progreso y cambios de modelo a la interfaz. |
2. generateContentWithRetryAndFallback(genAI, modelConfig, prompt, modelsList, onStatusUpdate)
Firma: generateContentWithRetryAndFallback(genAI, modelConfig, prompt, modelsList, onStatusUpdate): Promise<any>
Propósito: Algoritmo de bajo nivel para ejecutar peticiones con reintentos exponenciales y cambio automático a modelos de respaldo en caso de agotamiento de cuotas (429) o errores temporales (503).
🧪 Demostración Interactiva en Vivo
Prueba el módulo ai.js ejecutando consultas en tiempo real hacia la API de Google Gemini: