Proyecto

General

Perfil

Acciones

Modificacion #3644

abierta
AA EB

Hacer un intereprte de pdf para aereos.

Modificacion #3644: Hacer un intereprte de pdf para aereos.

Añadido por Admin Savia Web Admin hace 4 meses. Actualizado hace 4 meses.

Estado:
Nueva
Prioridad:
Normal
Fecha de inicio:
17/06/2026
Fecha fin:
% Realizado:

0%

Tiempo estimado:
Cliente:

*


Descripción

Deberiamos crear una sección en savia que se llame credenciales IA y que diga Gemini y allí peguen la api key.

Cuando el usuario pegue la clave en el panel de administración, el backend debe proteger ese dato.
Frontend: El input del formulario debe ser de tipo password (<input type="password">) para que no quede expuesto en la pantalla.
Backend: No guardamos la API Key en texto plano. Porque si alguien accede a la base de datos, podría usar las claves de todos las agencias. Tenemos que cifrarla usando un algoritmo como AES-256 utilizando una clave maestra interna de Savia antes de insertarla en la tabla o algo asi lei.

Como seria el flujo cuando el usuario sube el PDF
Cuando el usuario hace clic agregar nuevo aereo al costado de Multidestino, ponemos un boton en color que se vea y diga "Interpretar PDF con IA" y se ejecuta el siguiente proceso:

Paso 1: Recuperar y descifrar la clave
El backend recibe el archivo PDF, identifica a qué agencia pertenece el usuario, busca la API Key cifrada en la base de datos y la descifra en memoria para usarla en esa única petición.

Paso 2: Llamada a la API de Gemini
Para leer PDFs, el modelo que podemos usar es el Gemini 2.5 Flash.

La ventaja de Gemini frente a otros (como ChatGPT) es que acepta archivos nativamente (soporta PDFs directamente, sin necesidad de extrer el texto con librerías raras).

La petición HTTP estructurada a la API de Google se hace de la siguiente manera:

URL: [https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=AQUI_VA_LA_API_KEY_DEL_CLIENTE]
(https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=AQUI_VA_LA_API_KEY_DEL_CLIENTE)

Headers: Content-Type: application/json

En el cuerpo (body) de la petición JSON que le mandás a Google, debés pasarle el archivo PDF (codificado en Base64) y configurar el objeto generationConfig para exigir un esquema de respuesta. El JSON que debés enviarle a la API tiene este formato: (adjunto archivo JSON)

Paso 3. El Frontend recibe y dibuja los datos
Google te va a devolver exactamente el JSON limpio con las variables estructuradas.
Tomamos ese JSON y se lo mandamos de vuelta a la pantalla del navegador del agente de viajes.

Con Javascript (o el framework que uses en el front de Savia), hacés el mapeo directo a los inputs de la pantalla que vimos en la imagen:

Si json.trayecto == "ROUND_TRIP", seleccionás el botón de opción correspondiente de forma automática.
Buscás el input de número de vuelo de ida y le asignás json.vuelo_ida.numero_vuelo.
Asignás los campos de fecha y hora directamente en las cajas de texto respectivas del formulario.


Ficheros

gemini-code-1782385689899.json (1,85 KB) gemini-code-1782385689899.json Admin Savia Web Admin, 25/06/2026 08:09

AA Actualizado por Admin Savia Web Admin hace 4 meses Acciones #1

  • Se actualizó Descripción (diferencias)
  • Asignado a establecido a Emiliano Bianchetti

AA Actualizado por Admin Savia Web Admin hace 4 meses Acciones #2

AA Actualizado por Admin Savia Web Admin hace 4 meses Acciones #3

Acciones

Exportar a: PDF Atom