Fragmentation et Incorporation PDF

Vue d’ensemble

Aspose.PDF PDF Chunking and Embedding permet de diviser les documents PDF en fragments de texte sémantiques et de générer des incorporations vectorielles pour une utilisation dans les pipelines de Génération Augmentée par Récupération (RAG), la recherche sémantique et d’autres scénarios pilotés par l’IA.

L’API fournit deux points d’entrée sous forme de méthodes d’extension sur Document :

Méthode Description
GetChunksAsync Convertit un PDF en Markdown et le divise en objets DocumentChunk.
IngestAsync Pipeline complet : fragmente le document, génère des incorporations et effectue un upsert des enregistrements dans un magasin de vecteurs.

Prérequis

  • Aspose.PDF for .NET
  • Microsoft.Extensions.AI — pour IEmbeddingGenerator<string, Embedding<float>>
  • Microsoft.Extensions.VectorData — pour VectorStoreCollection<string, DocumentChunk>
  • Un fournisseur d’incorporations (par exemple OpenAI, Azure OpenAI ou toute implémentation IEmbeddingGenerator)
  • Un magasin de vecteurs (par exemple Azure AI Search, Qdrant, en mémoire ou toute implémentation VectorStoreCollection)

Options de fragmentation

Configurez le comportement de fragmentation via ChunkingOptions :

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

var customOptions = new Aspose.Pdf.AI.ChunkingOptions
{
    MaxChunkSize = 512,
    OverlapSize  = 50
};
Propriété Défaut Plage Description
MaxChunkSize 1000 50–10 000 Nombre maximum de tokens par fragment.
OverlapSize 100 0–(MaxChunkSize−1) Nombre de tokens se chevauchant entre des fragments consécutifs, préservant le contexte aux limites.

Obtention des fragments

Utilisez GetChunksAsync lorsque vous n’avez besoin que des fragments de texte — par exemple, pour les inspecter, les post-traiter ou les introduire dans un pipeline d’incorporation personnalisé.

Fragmentation, incorporation et ingestion dans le magasin de vecteurs

Utilisez IngestAsync pour exécuter le pipeline complet en un seul appel : le document est fragmenté, des incorporations sont générées pour chaque fragment, et tous les enregistrements sont upsertés dans le magasin de vecteurs.

Étant donné que l’API est construite sur les abstractions Microsoft.Extensions.AI, n’importe quel fournisseur d’incorporations et n’importe quel magasin de vecteurs peuvent être utilisés de manière interchangeable.

OpenAI

Référence DocumentChunk

Chaque DocumentChunk retourné par GetChunksAsync ou stocké par IngestAsync possède les propriétés suivantes :

Propriété Type Description
Id string Identifiant unique au format {sourceId}_chunk_{index}.
Index int Position basée sur zéro de ce fragment dans le document.
Content string Le contenu textuel du fragment. Stocké comme données de recherche en texte intégral dans le magasin de vecteurs.
Context string Contexte structurel extrait du document (par exemple, chemin d’en-tête). Aide les pipelines RAG à comprendre d’où dans le document provient le fragment.
Embedding ReadOnlyMemory<float>? Incorporation vectorielle, remplie par IngestAsync. null lors de l’utilisation de GetChunksAsync seul.
Metadata IDictionary<string, string> Magasin extensible clé-valeur pour les métadonnées personnalisées.

Schéma du magasin de vecteurs

Utilisez DocumentChunk.GetVectorDefinition(dimensions) pour obtenir le schéma de collection correspondant à la taille de sortie du modèle d’incorporation :

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