En el desarrollo de aplicaciones de Inteligencia Artificial (IA), el contexto es fundamental, ya que los modelos carecen de acceso a datos privados. Para obtener respuestas de alta calidad, las apps de IA necesitan datos pertinentes y su presentación oportuna. Esto se logra con la ingeniería de contexto, un proceso que involucra pipelines de ingesta de datos.
Para que los desarrolladores .NET puedan gestionar datos de manera eficiente para IA, Microsoft ha lanzado la versión preliminar de los bloques de construcción de ingesta de datos para .NET. Estos bloques facilitan la creación de pipelines componibles y robustos para aplicaciones de IA.
¿Qué es la ingesta de datos?
Es el proceso de recolectar, leer y preparar datos de diversas fuentes (archivos, bases de datos, APIs). Sigue el flujo ETL (Extract, Transform, Load):
- Extracción: Obtener datos de su origen.
- Transformación: Limpiar, segmentar (chunking) y enriquecer.
- Carga: Almacenar en bases de datos vectoriales o modelos de IA.
Para RAG (Generación Aumentada por Recuperación), la ingesta es clave para hacer los datos utilizables: preservar estructura, segmentar, enriquecer con metadatos/embeddings y almacenar para una recuperación rápida y precisa. El reto en .NET es lograr un ETL confiable y escalable para la IA moderna.
Bloques de construcción de ingesta de datos en .NET
Estos bloques, una biblioteca fundamental para el procesamiento de documentos, resuelven la fragmentación y la limitada extensibilidad en la preparación de datos para IA/RAG. Permiten crear pipelines de datos robustos y flexibles con características como:
- Representación unificada de documentos.
- Ingesta flexible desde diversas fuentes.
- Mejoras de IA integradas (resúmenes, análisis de sentimiento, extracción de palabras clave).
- Estrategias de segmentación personalizables (token, sección, semántica).
- Almacenamiento listo para producción en bases de datos vectoriales con generación de embeddings.
- Composición de pipelines de extremo a extremo con la API
IngestionPipeline. - Alto rendimiento y escalabilidad.
Su diseño abierto y extensible permite añadir lógica personalizada, nuevos conectores y adaptar los sistemas a futuros escenarios de IA, estandarizando el procesamiento de documentos en .NET.
Cimientos estables
Los componentes se basan en pilares del ecosistema .NET, garantizando fiabilidad e integración:
- Microsoft.ML.Tokenizers: Para segmentación de documentos por tokens.
- Microsoft.Extensions.AI: Para enriquecimiento con LLMs.
- Microsoft.Extensions.VectorData: Interfaz consistente para bases de datos vectoriales (Qdrant, SQL Server, CosmosDB, ElasticSearch, etc.).
Esta modularidad garantiza adaptabilidad y compatibilidad con el creciente ecosistema .NET AI.
Construye tu primer pipeline
El post detalla cómo construir un pipeline paso a paso:
- Configuración del proyecto: Crear la aplicación e instalar los paquetes NuGet necesarios para ingesta de datos y componentes de IA.
- Configuración del lector: Seleccionar un
IngestionDocumentReaderapropiado, comoMarkdownReader. - Configuración de procesadores de documentos: Añadir procesadores para enriquecer documentos a nivel global (ej.,
ImageAlternativeTextEnricher). - Segmentación (Chunking): Usar un
IngestionChunker(ej.,SemanticSimilarityChunker) para dividir el contenido de forma inteligente, optimizado por tokens. - Procesamiento de fragmentos: Aplicar procesadores a nivel de chunk (ej.,
SummaryEnricher) para transformaciones específicas. - Almacenamiento: Persistir fragmentos y embeddings en un almacén vectorial (ej., SQLite) a través de un
VectorStoreWriter<T>. - Composición y ejecución: Orquestar todos los componentes con la API
IngestionPipeline, diseñada para manejar éxitos parciales sin detener el proceso. - Recuperación: Realizar búsquedas vectoriales sobre los fragmentos almacenados para obtener información relevante para una consulta.
Escenarios de extremo a extremo y observabilidad
La Plantilla de Chat Web de IA de .NET ofrece una experiencia completa para analizar, segmentar y almacenar documentos en una base de datos vectorial para RAG. Demuestra cómo construir aplicaciones distribuidas con Aspire, integrando componentes como Ollama, Qdrant y MarkItDown. Con Aspire, se obtiene una rica observabilidad, incluyendo OpenTelemetry tracing para el diagnóstico de pipelines y la aplicación web.
¿Listo para empezar?
Instala la Plantilla de Chat Web de IA de .NET para comenzar. Se anima a los usuarios a experimentar con sus propios archivos, y a los desarrolladores a extender las abstracciones existentes. Envía tus preguntas, problemas y sugerencias a través de GitHub para ayudar a dar forma al futuro de estos bloques de construcción.
