PDF Chunking and Embedding

Ikhtisar

Aspose.PDF PDF Chunking and Embedding memungkinkan pemisahan dokumen PDF menjadi potongan teks semantik dan pembuatan penyematan vektor untuk digunakan dalam pipeline Retrieval-Augmented Generation (RAG), pencarian semantik, dan skenario berbasis AI lainnya.

API ini menyediakan dua titik masuk sebagai metode ekstensi pada Document:

Metode Deskripsi
GetChunksAsync Mengonversi PDF ke Markdown dan membaginya menjadi objek DocumentChunk.
IngestAsync Pipeline lengkap: memotong dokumen, menghasilkan penyematan, dan melakukan upsert rekaman ke dalam penyimpanan vektor.

Prasyarat

  • Aspose.PDF for .NET
  • Microsoft.Extensions.AI — untuk IEmbeddingGenerator<string, Embedding<float>>
  • Microsoft.Extensions.VectorData — untuk VectorStoreCollection<string, DocumentChunk>
  • Penyedia penyematan (misalnya OpenAI, Azure OpenAI, atau implementasi IEmbeddingGenerator apa pun)
  • Penyimpanan vektor (misalnya Azure AI Search, Qdrant, in-memory, atau implementasi VectorStoreCollection apa pun)

Opsi Chunking

Konfigurasikan perilaku chunking melalui ChunkingOptions:

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

var customOptions = new Aspose.Pdf.AI.ChunkingOptions
{
    MaxChunkSize = 512,
    OverlapSize  = 50
};
Properti Default Rentang Deskripsi
MaxChunkSize 1000 50–10 000 Jumlah token maksimum per potongan.
OverlapSize 100 0–(MaxChunkSize−1) Jumlah token yang tumpang tindih antara potongan berurutan, mempertahankan konteks di batas.

Mendapatkan Potongan

Gunakan GetChunksAsync ketika Anda hanya memerlukan potongan teks — misalnya, untuk memeriksanya, memprosesnya lebih lanjut, atau memasukkannya ke dalam pipeline penyematan kustom.

Chunking, Embedding, dan Ingesti Penyimpanan Vektor

Gunakan IngestAsync untuk menjalankan pipeline lengkap dalam satu panggilan: dokumen dipotong, penyematan dihasilkan untuk setiap potongan, dan semua rekaman di-upsert ke dalam penyimpanan vektor.

Karena API dibangun di atas abstraksi Microsoft.Extensions.AI, penyedia penyematan apa pun dan penyimpanan vektor apa pun dapat digunakan secara bergantian.

OpenAI

Referensi DocumentChunk

Setiap DocumentChunk yang dikembalikan oleh GetChunksAsync atau disimpan oleh IngestAsync memiliki properti berikut:

Properti Tipe Deskripsi
Id string Pengenal unik dalam format {sourceId}_chunk_{index}.
Index int Posisi berbasis nol dari potongan ini dalam dokumen.
Content string Konten teks dari potongan. Disimpan sebagai data pencarian teks lengkap di penyimpanan vektor.
Context string Konteks struktural yang diekstrak dari dokumen (misalnya, jalur judul). Membantu pipeline RAG memahami di mana dalam dokumen potongan tersebut berasal.
Embedding ReadOnlyMemory<float>? Penyematan vektor, diisi oleh IngestAsync. null saat hanya menggunakan GetChunksAsync.
Metadata IDictionary<string, string> Penyimpanan kunci-nilai yang dapat diperluas untuk metadata kustom.

Skema Penyimpanan Vektor

Gunakan DocumentChunk.GetVectorDefinition(dimensions) untuk mendapatkan skema koleksi yang sesuai dengan ukuran keluaran model penyematan:

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