Aspose.PDF PDF Chunking and Embedding permite dividir documentos PDF en fragmentos de texto semánticos y generar incrustaciones vectoriales para su uso en canalizaciones de Generación Aumentada por Recuperación (RAG), búsqueda semántica y otros escenarios impulsados por IA.
La API proporciona dos puntos de entrada como métodos de extensión en Document:
Método
Descripción
GetChunksAsync
Convierte un PDF a Markdown y lo divide en objetos DocumentChunk.
IngestAsync
Pipeline completo: fragmenta el documento, genera incrustaciones y realiza upsert de registros en un almacén de vectores.
Requisitos previos
Aspose.PDF for .NET
Microsoft.Extensions.AI — para IEmbeddingGenerator<string, Embedding<float>>
Microsoft.Extensions.VectorData — para VectorStoreCollection<string, DocumentChunk>
Un proveedor de incrustaciones (por ejemplo, OpenAI, Azure OpenAI o cualquier implementación de IEmbeddingGenerator)
Un almacén de vectores (por ejemplo, Azure AI Search, Qdrant, in-memory o cualquier implementación de VectorStoreCollection)
Opciones de fragmentación
Configure el comportamiento de fragmentación mediante ChunkingOptions:
Número de tokens superpuestos entre fragmentos consecutivos, preservando el contexto en los límites.
Obtención de fragmentos
Use GetChunksAsync cuando solo necesite los fragmentos de texto — por ejemplo, para inspeccionarlos, post-procesarlos o introducirlos en un pipeline de incrustación personalizado.
Fragmentación, incrustación e ingesta en almacén de vectores
Use IngestAsync para ejecutar el pipeline completo en una sola llamada: el documento se fragmenta, se generan incrustaciones para cada fragmento y todos los registros se introducen mediante upsert en el almacén de vectores.
Dado que la API se basa en las abstracciones de Microsoft.Extensions.AI, cualquier proveedor de incrustaciones y cualquier almacén de vectores se pueden usar de forma intercambiable.
OpenAI
Azure OpenAI y Azure AI Search
Referencia de DocumentChunk
Cada DocumentChunk devuelto por GetChunksAsync o almacenado por IngestAsync tiene las siguientes propiedades:
Propiedad
Tipo
Descripción
Id
string
Identificador único en el formato {sourceId}_chunk_{index}.
Index
int
Posición basada en cero de este fragmento en el documento.
Content
string
El contenido de texto del fragmento. Se almacena como datos de búsqueda de texto completo en el almacén de vectores.
Context
string
Contexto estructural extraído del documento (por ejemplo, ruta de encabezado). Ayuda a las canalizaciones RAG a entender de dónde en el documento proviene el fragmento.
Embedding
ReadOnlyMemory<float>?
Incrustación vectorial, rellenada por IngestAsync. null cuando se usa GetChunksAsync solo.
Metadata
IDictionary<string, string>
Almacén extensible de clave-valor para metadatos personalizados.
Esquema del almacén de vectores
Use DocumentChunk.GetVectorDefinition(dimensions) para obtener el esquema de colección que coincide con el tamaño de salida del modelo de incrustación: