Aplicación web para extraer datos de facturas automáticamente usando inteligencia artificial. Sube una imagen o PDF de una factura y obtén los datos estructurados listos para exportar.
- Extracción con IA: Utiliza Google Gemini para analizar y extraer datos de facturas
- Múltiples formatos de entrada: Soporta imágenes (JPEG, PNG, WebP, GIF) y PDF
- Exportación flexible: Exporta los datos a Excel, CSV, JSON o PDF
- Interfaz moderna: UI responsive construida con React 19 y Tailwind CSS
- Validación de datos: Esquemas Zod para garantizar la integridad de los datos extraídos
- Número de factura
- Fecha
- Datos del vendedor (nombre, NIF, dirección)
- Líneas de detalle (descripción, cantidad, precio unitario, total)
- Subtotal, impuestos y total
- Moneda
- Nivel de confianza de la extracción
- Framework: Next.js 15 con Turbopack
- Frontend: React 19, Tailwind CSS, Radix UI
- IA: Google Gemini (via LangChain)
- Validación: Zod
- Exportación: xlsx, csv-stringify, jsPDF
- Clona el repositorio:
git clone https://github.com/JairoMS27/invoice_extractor.git
cd invoice_extractor- Instala las dependencias:
bun install
# o
npm install- Configura las variables de entorno:
cp .env.example .env.local- Añade tu API key de Google AI en
.env.local:
GOOGLE_API_KEY=tu_api_key_aquiPuedes obtener tu API key en Google AI Studio.
- Inicia el servidor de desarrollo:
bun dev
# o
npm run dev-
Abre http://localhost:3000 en tu navegador
-
Arrastra o selecciona una factura (imagen o PDF)
-
Espera a que la IA procese el documento
-
Revisa los datos extraídos y exporta en el formato deseado
bun dev- Inicia el servidor de desarrollobun build- Compila la aplicación para producciónbun start- Inicia el servidor de producciónbun lint- Ejecuta el linter
├── app/
│ ├── api/
│ │ ├── extract/ # API para extracción de datos
│ │ └── export/ # API para exportación
│ ├── layout.tsx
│ └── page.tsx
├── components/
│ ├── ui/ # Componentes base (Button, Card, etc.)
│ └── ... # Componentes específicos
├── lib/
│ ├── agents/ # Agente de IA para extracción
│ ├── types.ts # Tipos y esquemas Zod
│ └── utils.ts
└── ...
MIT