Skip to content
    HAQQ
    • الأسعار
    ابدأ مجاناً
    ابدأ مجاناًاحجز عرضاً تجريبياً
    تسجيل الدخول
    1. الرئيسية
    2. المدونة
    3. Docling Python: دليل عملي لمعالجة الملفات في 2026
    العودة للمدونةأدلة وإرشادات

    Docling Python: دليل عملي لمعالجة الملفات في 2026

    حوّل ملفات PDF وWord والمستندات الممسوحة ضوئياً إلى Markdown نظيف عبر Docling، مكتبة Python مفتوحة المصدر. خطوات التثبيت والتقطيع وأمثلة شيفرة جاهزة لـ RAG.

    ٢٠ مايو ٢٠٢٦
    10 دقائق للقراءة
    |
    Jad JabbourJad Jabbour
    Docling Python: دليل عملي لمعالجة الملفات في 2026

    إجابة مختصرة: Docling هي مكتبة Python مفتوحة المصدر تحول ملفات PDF و Word و HTML غير المنظمة إلى نصوص نظيفة ومنظمة يمكنك إدخالها إلى تطبيق ذكاء اصطناعي. يشرح هذا الدليل عملية التثبيت، وواجهة برمجة التطبيقات الأساسية، والأنماط العملية التي تستحق الاستخدام منذ اليوم الأول.

    جرّب HAQQ AI مجاناً

    اختبر الصياغة والبحث القانوني بالذكاء الاصطناعي

    يمثل العمل مع المستندات بتنسيقات مختلفة تحديًا شائعًا عند بناء تطبيقات الذكاء الاصطناعي. سواء كنت تقوم بمعالجة ملفات PDF أو مستندات Word أو ملفات HTML، يمكن أن يكون استخراج نص نظيف ومنظم أمرًا صعبًا بشكل مفاجئ. Docling هي مكتبة Python تجعل هذه العملية سهلة ومباشرة.

    يرشدك هذا الدليل خلال أساسيات استخدام Docling لمعالجة المستندات، مع التركيز على الأمثلة العملية وأفضل الممارسات التي يمكنك تطبيقها على الفور.

    لماذا Docling؟

    يحل Docling مشكلات معالجة المستندات الشائعة بطريقة موحدة. يوفر دعمًا متعدد التنسيقات يعمل بسلاسة مع ملفات PDF ومستندات Word وعروض PowerPoint التقديمية و HTML والمزيد. تتضمن المكتبة إمكانيات التعرف الضوئي على الحروف (OCR) التي يمكنها استخراج النص حتى من المستندات والصور الممسوحة ضوئيًا، مما يجعلها متعددة الاستخدامات لأنواع المستندات المختلفة.

    ما يميز Docling هو ميزة التقطيع الذكي التي تقسم المستندات إلى أجزاء ذات معنى مع الحفاظ على السياق، بدلاً من تقسيم النص بشكل عشوائي. يكون الناتج نظيفًا ومنظمًا، سواء كنت بحاجة إلى تنسيق Markdown أو نص عادي. والأفضل من ذلك كله، يقدم Docling واجهة برمجة تطبيقات بسيطة وبديهية يسهل البدء بها، حتى للمطورين الجدد في معالجة المستندات.

    البدء

    أولاً، قم بتثبيت Docling:

    bash
    pip install docling

    الاستخدام الأساسي

    تحويل مستند

    أبسط طريقة لاستخدام Docling هي عبر DocumentConverter:

    python
    from docling.document_converter import DocumentConverter
    
    # Create a converter
    converter = DocumentConverter()
    
    # Convert a document
    result = converter.convert("document.pdf")
    document = result.document
    
    # Export to markdown
    markdown_text = document.export_to_markdown()
    print(markdown_text)

    هذا كل ما في الأمر! يقوم Docling تلقائيًا باكتشاف تنسيق الملف ومعالجته بناءً عليه.

    العمل مع مصادر ملفات مختلفة

    يمكن لـ Docling معالجة الملفات المحلية وعناوين URL البعيدة:

    python
    from docling.document_converter import DocumentConverter
    import requests
    import tempfile
    
    converter = DocumentConverter()
    
    # Local file
    result = converter.convert("/path/to/document.pdf")
    
    # Remote URL - download first
    url = "https://example.com/document.pdf"
    response = requests.get(url)
    with tempfile.NamedTemporaryFile(suffix='.pdf', delete=False) as tmp:
        tmp.write(response.content)
        tmp_path = tmp.name
    
    result = converter.convert(tmp_path)
    # Don't forget to clean up
    import os
    os.unlink(tmp_path)

    ما هي التنسيقات المدعومة؟

    يعمل Docling مع العديد من تنسيقات الملفات الشائعة بشكل افتراضي. يتعامل مع ملفات PDF، بما في ذلك المستندات الممسوحة ضوئيًا باستخدام تقنية التعرف الضوئي على الحروف (OCR). يتم دعم تنسيقات Microsoft Office مثل Word (.docx) وPowerPoint (.pptx) بالكامل، وكذلك تنسيقات الويب مثل HTML. يمكنك أيضًا معالجة ملفات Markdown ومستندات النص العادي وحتى ملفات الصور (.webp, .webp) باستخدام إمكانيات OCR المدمجة فيه.

    يقوم DocumentConverter تلقائيًا باكتشاف تنسيق الملف وتطبيق طريقة المعالجة المناسبة، لذلك لا داعي للقلق بشأن تحديد النوع بشكل صريح.

    تقسيم المستندات إلى أجزاء (Chunking)

    بالنسبة للعديد من تطبيقات الذكاء الاصطناعي، تحتاج إلى تقسيم المستندات إلى أجزاء أصغر ("chunks"). يجعل HybridChunker من Docling هذه العملية ذكية وسهلة.

    تجزئة أساسية

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    # Convert document
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Set up chunker with your tokenizer
    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
    chunker = HybridChunker(
        tokenizer=tokenizer,
        max_tokens=512  # Maximum tokens per chunk
    )
    
    # Get chunks
    chunks = list(chunker.chunk(document))
    
    # Process chunks
    for i, chunk in enumerate(chunks):
        print(f"Chunk {i}: {chunk.text[:100]}...")

    لماذا تستخدم HybridChunker؟

    يوفر HybridChunker تقسيمًا ذكيًا للمستندات يتجاوز العد البسيط للأحرف أو الكلمات. فهو يحافظ على هياكل المستندات الطبيعية مثل الفقرات والأقسام، مما يضمن عدم حصولك على أجزاء مقطوعة بشكل غير ملائم في منتصف الجملة. وهذا مهم بشكل خاص للحفاظ على المعنى الدلالي في النص الخاص بك.

    • يحافظ على هياكل المستندات الطبيعية مثل الفقرات والأقسام
    • تجزئة واعية بالرموز تحترم حدود نموذج التضمين
    • أحجام تجزئة قابلة للتكوين بناءً على احتياجاتك المحددة
    • يحافظ على تتبع البيانات الوصفية التي تحدد مصدر كل تجزئة

    العمل مع البيانات الوصفية

    يستخرج Docling بيانات وصفية مفيدة من المستندات:

    python
    from docling.document_converter import DocumentConverter
    
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Access document metadata
    if hasattr(document, 'meta'):
        print(f"Document metadata: {document.meta}")
    
    # Chunk with metadata
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
    for chunk in chunker.chunk(document):
        print(f"Text: {chunk.text[:50]}...")
        if hasattr(chunk, 'meta'):
            print(f"Metadata: {chunk.meta}")

    تجميع كل ذلك معًا

    إليك مثال كامل يعالج مستندًا ويجهزه للاستخدام في تطبيق ذكاء اصطناعي:

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer
    
    def process_document(file_path, max_tokens=512):
        """Process a document and return chunks ready for embedding."""
    
        # Step 1: Convert document
        converter = DocumentConverter()
        result = converter.convert(file_path)
        document = result.document
    
        # Step 2: Set up chunker
        tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
        chunker = HybridChunker(
            tokenizer=tokenizer,
            max_tokens=max_tokens
        )
    
        # Step 3: Get chunks
        chunks = []
        for i, chunk in enumerate(chunker.chunk(document)):
            chunks.append({
                'text': chunk.text,
                'index': i,
                'source': file_path
            })
    
        return chunks
    
    # Usage
    chunks = process_document("my_document.pdf")
    print(f"Created {len(chunks)} chunks")
    for chunk in chunks:
        print(f"Chunk {chunk['index']}: {chunk['text'][:50]}...")

    نصائح عملية

    معالجة مستندات متعددة

    python
    import os
    from pathlib import Path
    
    def process_folder(folder_path, max_tokens=512):
        """Process all PDFs in a folder."""
        all_chunks = []
    
        for file_path in Path(folder_path).glob("*.pdf"):
            try:
                chunks = process_document(str(file_path), max_tokens)
                all_chunks.extend(chunks)
                print(f"Processed {file_path.name}: {len(chunks)} chunks")
            except Exception as e:
                print(f"Failed to process {file_path.name}: {e}")
    
        return all_chunks

    التصدير إلى تنسيقات مختلفة

    يمكن لـ Docling تصدير المستندات إلى تنسيقات مختلفة:

    python
    from docling.document_converter import DocumentConverter
    
    converter = DocumentConverter()
    result = converter.convert("document.pdf")
    document = result.document
    
    # Export to markdown
    markdown = document.export_to_markdown()
    with open("output.md", "w", encoding="utf-8") as f:
        f.write(markdown)
    
    # Export to plain text
    text = document.export_to_text()
    with open("output.txt", "w", encoding="utf-8") as f:
        f.write(text)

    التعامل مع الأخطاء بسلاسة

    python
    def safe_process_document(file_path):
        """Process document with error handling."""
        try:
            converter = DocumentConverter()
            result = converter.convert(file_path)
            return result.document
        except FileNotFoundError:
            print(f"File not found: {file_path}")
            return None
        except Exception as e:
            print(f"Error processing {file_path}: {e}")
            return None

    بناء نظام بحث مستندات

    أحد الاستخدامات الأكثر شيوعًا لـ Docling هو بناء أنظمة بحث مستندات مدعومة بالذكاء الاصطناعي. عن طريق دمج معالجة مستندات Docling مع نماذج التضمين، يمكنك إنشاء قدرات بحث دلالي قوية.

    python
    from docling.document_converter import DocumentConverter
    from docling.chunking import HybridChunker
    from transformers import AutoTokenizer, AutoModel
    import torch
    
    # Process and embed documents
    def build_document_index(file_paths):
        converter = DocumentConverter()
        tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
        model = AutoModel.from_pretrained("bert-base-uncased")
        chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
        document_index = []
    
        for file_path in file_paths:
            # Convert and chunk
            result = converter.convert(file_path)
            chunks = list(chunker.chunk(result.document))
    
            # Create embeddings for each chunk
            for chunk in chunks:
                inputs = tokenizer(chunk.text, return_tensors="pt",
                                 truncation=True, max_length=512)
                with torch.no_grad():
                    embedding = model(**inputs).last_hidden_state.mean(dim=1)
    
                document_index.append({
                    'text': chunk.text,
                    'embedding': embedding,
                    'source': file_path
                })
    
        return document_index

    نصائح للأداء

    اختر الحجم المناسب للجزء

    طابق حجم الأجزاء مع نموذج التضمين الخاص بك:

    python
    # For most sentence transformers (512 token limit)
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=512)
    
    # For models with larger context windows
    chunker = HybridChunker(tokenizer=tokenizer, max_tokens=2048)

    معالجة الملفات بالتوازي

    python
    from concurrent.futures import ThreadPoolExecutor
    
    def process_multiple_files(file_paths, max_workers=4):
        with ThreadPoolExecutor(max_workers=max_workers) as executor:
            results = list(executor.map(process_document, file_paths))
        return results

    الخاتمة

    يجعل Docling معالجة المستندات أمراً مباشراً من خلال توفير واجهة برمجة تطبيقات بسيطة تتيح لك تحويل أي مستند ببضعة أسطر من التعليمات البرمجية فقط. تقوم قدراته الذكية على تقسيم المستندات بتقسيم المستندات إلى أجزاء ذات معنى تحافظ على السياق والهيكل، مما يجعله مثالياً لتطبيقات الذكاء الاصطناعي.

    سواء كنت تقوم بإنشاء نظام بحث، أو روبوت محادثة، أو أداة لتحليل المستندات، أو أي تطبيق ذكاء اصطناعي يحتاج إلى العمل مع المستندات، فإن Docling يوفر الأساس الذي تحتاجه.

    إن الجمع بين سهولة الاستخدام والميزات القوية للمكتبة يجعلها خياراً ممتازاً لتطبيقات النماذج الأولية والإنتاج على حد سواء. بفضل دعمها متعدد التنسيقات لملفات PDF ومستندات Word وHTML والمزيد، بالإضافة إلى ميزة التعرف الضوئي على الحروف (OCR) المدمجة للمستندات الممسوحة ضوئياً، يتعامل Docling مع تعقيد معالجة المستندات حتى لا تضطر إلى ذلك.

    الموارد

    يمكنك العثور على مشروع Docling على GitHub حيث ستجد الكود المصدري والوثائق الإضافية. للعمل مع نماذج المحولات (transformer models) وأجهزة ترميز الكلمات (tokenizers)، راجع وثائق Hugging Face Transformers. توفر وثائق Docling معلومات أكثر تفصيلاً حول الميزات المتقدمة وخيارات التكوين.

    • Docling GitHub
    • Hugging Face Transformers
    • توثيق دوكلينغ

    قراءات ذات صلة

    • هندسة السياق للذكاء الاصطناعي القانوني الموثوق
    • مراجعة المستندات الجدولية للذكاء الاصطناعي القانوني
    • دليل الهندسة القانونية لسير العمل المدعوم بالذكاء الاصطناعي
    J

    Jad Jabbour

    Tech Lead, AI

    موارد ذات صلة

    Document managementLegal AI ChateFirm practice management

    مقالات ذات صلة

    هندسة السياق للمحامين: دليل 2026 لذكاء اصطناعي قانوني موثوق

    هندسة السياق للمحامين: دليل 2026 لذكاء اصطناعي قانوني موثوق

    حق للذكاء الاصطناعي القانوني تطلق مساحات عمل المشاريع: منزل واحد لكل قضية قانونية

    حق للذكاء الاصطناعي القانوني تطلق مساحات عمل المشاريع: منزل واحد لكل قضية قانونية

    الترجمة القانونية بالذكاء الاصطناعي من العربية إلى الإنجليزية: دليل عملي

    الترجمة القانونية بالذكاء الاصطناعي من العربية إلى الإنجليزية: دليل عملي

    الأسئلة الشائعة

    What is Docling in Python?

    Docling is an open source Python library from IBM Research that parses PDFs, Word documents, PowerPoint, HTML and images into clean, structured Markdown or JSON. It is widely used as a document preprocessing layer for AI and RAG pipelines.

    How do I install Docling?

    Install Docling with pip: 'pip install docling'. The package ships with default models for layout and OCR, and supports CPU and GPU inference. Python 3.10 or newer is required.

    What file formats does Docling support?

    Docling supports PDF (text and scanned), DOCX, PPTX, HTML, AsciiDoc, Markdown and common image formats (PNG, JPEG, TIFF). It preserves tables, headings, lists and reading order for downstream LLM consumption.

    Docling vs Unstructured vs LlamaParse?

    Docling is fully open source, runs locally and offers strong layout and table parsing. Unstructured is also open source with a broader connector ecosystem. LlamaParse is a hosted commercial service with strong table parsing. For private legal documents, Docling is the strongest default because it keeps data on your infrastructure.

    How does HAQQ use Docling?

    HAQQ uses document parsing technologies in the same family as Docling to ingest client files into private workspaces while preserving structure, tables and citations for legal analysis - without sending document content to public AI services.

    ما التالي؟

    جرّب HAQQ AI مجاناً

    اختبر الصياغة والبحث القانوني بالذكاء الاصطناعي

    احسب عائد الاستثمار

    اكتشف كم من الوقت والمال يوفره HAQQ لمكتبك

    تصفح 380+ أمر قانوني

    أوامر جاهزة للاستخدام لكل مهمة قانونية

    العودة للمدونة

    المقال السابق

    مراجعة Legora 2026: الأسعار والبدائل وLegora ضد HAQQ

    المقال التالي

    ChatGPT للمحامين في 2026: ما يجيده وأين تتفوق الذكاء الاصطناعي القانوني المتخصص

    ضع هذا موضع التنفيذ

    اسأل HAQQ السؤال الذي أثاره هذا المقال لديك.

    HAQQ across all devices
    HAQQ Legal AI Platform Logo

    توأمك القانوني بالذكاء الاصطناعي ونظام إدارة المكتب للصياغة والفوترة والفوز.

    Download on theApp StoreGet it onGoogle Play

    الوثائق

    • الوثائق يفتح في علامة تبويب جديدة
    • البداية يفتح في علامة تبويب جديدة
    • الصحافة يفتح في علامة تبويب جديدة
    • تحديثات المنتج يفتح في علامة تبويب جديدة
    • الحالة يفتح في علامة تبويب جديدة
    • الأمان
    • الأسئلة الشائعة يفتح في علامة تبويب جديدة
    • المجتمع يفتح في علامة تبويب جديدة
    • الدعم يفتح في علامة تبويب جديدة

    الأكاديمية

    • الدورة يفتح في علامة تبويب جديدة
    • المهارات يفتح في علامة تبويب جديدة
    • البنود يفتح في علامة تبويب جديدة
    • مكتبة الأوامر يفتح في علامة تبويب جديدة
    • الأدوات يفتح في علامة تبويب جديدة
    • مركز الأبحاث يفتح في علامة تبويب جديدة
    • المستندات يفتح في علامة تبويب جديدة

    الموقع الإلكتروني

    • eFirm
    • الدردشة القانونية بالذكاء الاصطناعي
    • تطبيق الهاتف
    • محرك جستنيان
    • HAQQ eBar
    • HAQQ eWallet
    • الأسعار
    • قارننا
    • الحلول
    • المدونة
    • تعرف على الفريق
    • انضم إلينا يفتح في علامة تبويب جديدة
    افتح التطبيق
    • اللغاتar en fr es it de pt
    • التواصلinfo@haqq.ai
    • الحالةيعمل·راسخ
    • شروط الخدمة
    • سياسة الخصوصية
    • سياسة ملفات تعريف الارتباط
    • معالجة البيانات يفتح في علامة تبويب جديدة
    • humans.txt يفتح في علامة تبويب جديدةlawyers.txt يفتح في علامة تبويب جديدةsecurity.txt يفتح في علامة تبويب جديدة
    © 2026 HAQQ Inc. جميع الحقوق محفوظة.المنتج مطوّر داخلياً بالكامل من قبل HAQQ. الموقع الإلكتروني مبني بأدوات ويب حديثة.
    PDF
    DOCX
    HTML
    PPTX

    Markdown

    Clean, structured text

    📄

    PDF

    Including OCR

    📝

    Word

    .docx files

    📊

    PowerPoint

    .pptx slides

    🌐

    HTML

    Web pages

    📃

    Markdown

    .md files

    🖼️

    Images

    OCR support

    ❌ Arbitrary Split

    Context lost between chunks

    ✓ HybridChunker

    Section 1128 tokens
    Section 2256 tokens
    Section 3192 tokens
    Section 4384 tokens

    Preserves semantic meaning

    Extracting...

    Extracted Metadata

    title:Legal Agreement 2024
    author:John Smith
    pages:12
    created:2024-01-15
    Input Folder
    contract.pdf
    memo.docx
    brief.pdf
    report.html

    4

    Files Processed

    ~2.3 seconds

    📝

    Markdown

    📄

    Plain Text

    { }

    JSON

    Export to the format that fits your workflow

    Document
    Docling
    Chunks
    AI Ready

    From raw document to AI-ready embeddings in seconds