Fragmentación e Incrustación de PDF

Descripción general

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:

var options = new Aspose.Pdf.AI.ChunkingOptions();

var customOptions = new Aspose.Pdf.AI.ChunkingOptions
{
    MaxChunkSize = 512,
    OverlapSize  = 50
};
Propiedad Predeterminado Rango Descripción
MaxChunkSize 1000 50–10 000 Número máximo de tokens por fragmento.
OverlapSize 100 0–(MaxChunkSize−1) 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

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:

var definition = Aspose.Pdf.AI.DocumentChunk.GetVectorDefinition(dimensions: 1536);