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:
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
Azure OpenAI dan Azure AI Search
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: