Aspose.PDF PDF Chunking and Embedding permite dividir documentos PDF em fragmentos de texto semânticos e gerar embeddings vetoriais para uso em pipelines de Geração Aumentada por Recuperação (RAG), pesquisa semântica e outros cenários impulsionados por IA.
A API fornece dois pontos de entrada como métodos de extensão em Document:
Método
Descrição
GetChunksAsync
Converte um PDF para Markdown e o divide em objetos DocumentChunk.
IngestAsync
Pipeline completo: fragmenta o documento, gera embeddings e realiza upsert de registros em um armazenamento de vetores.
Pré-requisitos
Aspose.PDF for .NET
Microsoft.Extensions.AI — para IEmbeddingGenerator<string, Embedding<float>>
Microsoft.Extensions.VectorData — para VectorStoreCollection<string, DocumentChunk>
Um provedor de embeddings (por exemplo, OpenAI, Azure OpenAI ou qualquer implementação IEmbeddingGenerator)
Um armazenamento de vetores (por exemplo, Azure AI Search, Qdrant, in-memory ou qualquer implementação VectorStoreCollection)
Opções de Fragmentação
Configure o comportamento de fragmentação via ChunkingOptions:
Número de tokens sobrepostos entre fragmentos consecutivos, preservando o contexto nas fronteiras.
Obtendo Fragmentos
Use GetChunksAsync quando precisar apenas dos fragmentos de texto — por exemplo, para inspecioná-los, pós-processá-los ou alimentá-los em um pipeline de embedding personalizado.
Fragmentação, Embedding e Ingestão no Armazenamento de Vetores
Use IngestAsync para executar o pipeline completo em uma única chamada: o documento é fragmentado, embeddings são gerados para cada fragmento e todos os registros são inseridos via upsert no armazenamento de vetores.
Como a API é construída sobre as abstrações Microsoft.Extensions.AI, qualquer provedor de embeddings e qualquer armazenamento de vetores podem ser usados de forma intercambiável.
OpenAI
Azure OpenAI e Azure AI Search
Referência de DocumentChunk
Cada DocumentChunk retornado por GetChunksAsync ou armazenado por IngestAsync possui as seguintes propriedades:
Propriedade
Tipo
Descrição
Id
string
Identificador único no formato {sourceId}_chunk_{index}.
Index
int
Posição baseada em zero deste fragmento no documento.
Content
string
O conteúdo de texto do fragmento. Armazenado como dados de pesquisa de texto completo no armazenamento de vetores.
Context
string
Contexto estrutural extraído do documento (por exemplo, caminho de cabeçalho). Ajuda os pipelines RAG a entender de onde no documento o fragmento veio.
Embedding
ReadOnlyMemory<float>?
Embedding vetorial, preenchido por IngestAsync. null ao usar apenas GetChunksAsync.
Metadata
IDictionary<string, string>
Armazenamento extensível de chave-valor para metadados personalizados.
Esquema do Armazenamento de Vetores
Use DocumentChunk.GetVectorDefinition(dimensions) para obter o esquema de coleção correspondente ao tamanho de saída do modelo de embedding: