تقسيم PDF وتضمينه

نظرة عامة

تتيح ميزة Aspose.PDF PDF Chunking and Embedding تقسيم مستندات PDF إلى أجزاء نصية دلالية وتوليد تضمينات متجهية للاستخدام في خطوط أنابيب Retrieval-Augmented Generation (RAG) والبحث الدلالي وسيناريوهات الذكاء الاصطناعي الأخرى.

يوفر API نقطتي دخول كأساليب تمديد على Document:

الأسلوب الوصف
GetChunksAsync يحوّل PDF إلى Markdown ويقسّمه إلى كائنات DocumentChunk.
IngestAsync خط أنابيب كامل: يقسّم المستند إلى أجزاء ويولّد التضمينات ويُدرج السجلات في مخزن المتجهات.

المتطلبات الأساسية

  • Aspose.PDF for .NET
  • Microsoft.Extensions.AI — للحصول على IEmbeddingGenerator<string, Embedding<float>>
  • Microsoft.Extensions.VectorData — للحصول على VectorStoreCollection<string, DocumentChunk>
  • موفر تضمين (مثل OpenAI أو Azure OpenAI أو أي تنفيذ IEmbeddingGenerator)
  • مخزن متجهات (مثل Azure AI Search أو Qdrant أو in-memory أو أي تنفيذ VectorStoreCollection)

خيارات التقسيم إلى أجزاء

قم بتكوين سلوك التقسيم إلى أجزاء عبر ChunkingOptions:

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

var customOptions = new Aspose.Pdf.AI.ChunkingOptions
{
    MaxChunkSize = 512,
    OverlapSize  = 50
};
الخاصية الافتراضي النطاق الوصف
MaxChunkSize 1000 50–10 000 الحد الأقصى لعدد الرموز المميزة لكل جزء.
OverlapSize 100 0–(MaxChunkSize−1) عدد الرموز المميزة المتداخلة بين الأجزاء المتتالية، للحفاظ على السياق عند الحدود.

الحصول على الأجزاء

استخدم GetChunksAsync عندما تحتاج فقط إلى الأجزاء النصية — على سبيل المثال، لفحصها أو معالجتها لاحقًا أو تغذيتها في خط أنابيب تضمين مخصص.

التقسيم إلى أجزاء والتضمين واستيعاب مخزن المتجهات

استخدم IngestAsync لتشغيل خط الأنابيب الكامل في استدعاء واحد: يُقسَّم المستند إلى أجزاء، وتُولَّد التضمينات لكل جزء، وتُدرَج جميع السجلات في مخزن المتجهات.

نظرًا لأن API مبني على تجريدات Microsoft.Extensions.AI، يمكن استخدام أي موفر تضمين وأي مخزن متجهات بالتبادل.

OpenAI

مرجع DocumentChunk

كل DocumentChunk يُرجعه GetChunksAsync أو يُخزَّن بواسطة IngestAsync لديه الخصائص التالية:

الخاصية النوع الوصف
Id string معرّف فريد بتنسيق {sourceId}_chunk_{index}.
Index int موضع هذا الجزء في المستند يبدأ من الصفر.
Content string المحتوى النصي للجزء. يُخزَّن كبيانات بحث نصي كامل في مخزن المتجهات.
Context string السياق البنيوي المستخرج من المستند (مثل مسار العنوان). يساعد خطوط أنابيب RAG على فهم مكان الجزء في المستند.
Embedding ReadOnlyMemory<float>? التضمين المتجهي، يملؤه IngestAsync. يكون null عند استخدام GetChunksAsync وحده.
Metadata IDictionary<string, string> مخزن قابل للتوسيع من أزواج المفاتيح والقيم للبيانات الوصفية المخصصة.

مخطط مخزن المتجهات

استخدم DocumentChunk.GetVectorDefinition(dimensions) للحصول على مخطط المجموعة المطابق لحجم إخراج نموذج التضمين:

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