Inicio de la guía 1. Topología de la solución 2. Aspire como plano de control local 3. Configuración y contratos compartidos 4. Metadatos con SQLite y EF Core 5. API e interfaz de carga 6. Almacenamiento de objetos con MinIO 7. Pipeline de ingesta del worker 8. Extracción y división de texto 9. Artefactos literarios 10. Abstracciones de proveedores de IA 11. Almacenamiento vectorial con Qdrant 12. Flujo de preguntas y recuperación 13. Prompts y citas 14. Pruebas del pipeline 15. Notas de desarrollo local Todas las guías
Navegación de la guíaÍndice y capítulos
Capítulo 4

Metadatos con SQLite y EF Core

Cómo SQLite y EF Core registran el ciclo de vida, el progreso y el estado de ingesta de documentos.

Nota de traducción: Esta versión en español fue traducida con ayuda de un LLM y revisada para conservar los términos técnicos, el código y los nombres de archivos en inglés cuando corresponde.
Imagen decorativa del capítulo sobre Metadatos con SQLite y EF Core
Los estados del ciclo de vida del documento
public enum DocumentStatus
{
    Pending,
    Processing,
    Indexed,
    Failed
}

RAG.Core/Data/DocumentRecord.cs guarda metadatos del documento:

Los estados son:

Pending
Processing
Indexed
Failed

RAG.Core/Data/RagDbContext.cs mapea esta entidad con EF Core. Esto es intencionalmente simple. SQLite es suficiente para un proyecto local de aprendizaje y da a la API y al worker un estado durable compartido.

El inicializador de base de datos vive en ServiceCollectionExtensions.EnsureRagDatabaseAsync. Usa EnsureCreatedAsync y también hace verificaciones ligeras e idempotentes de columnas para los campos de progreso. Esto evita obligar a un desarrollador a borrar datos locales después de cambios en el modelo durante el tutorial.

En un sistema de producción, normalmente reemplazarías esto con migraciones formales de EF Core.