FacturApp es una aplicación MAUI Blazor Hybrid diseñada para revolucionar la gestión de facturas mediante Inteligencia Artificial. Permite procesar documentos, interactuar con un asistente de IA mediante voz y gestionar clientes y productos de forma eficiente.
- 🤖 Asistente IA (Voz/Texto): Interactúa con GPT-4o para realizar consultas y operaciones.
- 📄 Procesamiento de Documentos: Extracción inteligente de datos con Azure Document Intelligence.
- 🎙️ Control por Voz: Integración total con Azure Speech Services.
- 🗃️ Base de Datos Vectorial: Implementación con PostgreSQL + pgvector para búsquedas semánticas.
- 🛡️ Arquitectura Robusta: Procesamiento asíncrono mediante RabbitMQ.
- .NET 8 SDK
- Docker Desktop
- Claves de suscripción a Azure AI Services (Speech, OpenAI, Document Intelligence).
El proyecto utiliza Docker para gestionar la base de datos y la cola de mensajería. Ejecuta el siguiente comando en la raíz del proyecto:
docker-compose up -dEsto desplegará:
- PostgreSQL (pgvector): Puerto 5432.
- RabbitMQ: Puerto 5672 (API) y 15672 (Panel de administración).
- Admin UI: http://localhost:15672 (admin / superpassword123)
Para que la IA funcione, debes configurar tus credenciales de Azure en el archivo:
Config/AppConfig.cs
Asegúrate de rellenar los siguientes campos:
// Azure Speech
public const string SpeechKey = "TU_CLAVE";
public const string SpeechRegion = "TU_REGION";
// Azure OpenAI
public const string OpenAIEndpoint = "TU_ENDPOINT";
public const string OpenAIKey = "TU_CLAVE";
public const string OpenAIDeployment = "gpt-4o";
// Azure Document Intelligence
public const string DocIntelligenceEndpoint = "TU_ENDPOINT";
public const string DocIntelligenceKey = "TU_CLAVE";Puedes ejecutar el proyecto desde Visual Studio, JetBrains Rider o mediante la CLI:
dotnet build
dotnet run --project FacturApp.csproj- Frontend: Blazor Hybrid (HTML/CSS dentro de MAUI).
- Backend: C# / .NET MAUI.
- Mensajería: RabbitMQ para desacoplar procesos pesados.
- Persistencia: Entity Framework Core con PostgreSQL.
- IA: Integración nativa con Azure Cognitive Services.
Si ejecutas la app en un emulador o dispositivo físico Android, recuerda que localhost no funcionará. El archivo AppConfig.cs ya está preparado para detectar el entorno, pero asegúrate de que la IP LocalHostIp coincida con la IP local de tu máquina de desarrollo.
A continuación, algunas capturas del funcionamiento y la interfaz de la aplicación:
La arquitectura asíncrona garantiza que la interfaz de usuario nunca se bloquee mientras se procesan las facturas.
Developed with ❤️ by David Paredes.





