English | 中文 | 日本語 | Русский | فارسی | العربية
أداة قوية تستخدم نماذج اللغة الكبيرة متعددة الوسائط لتحويل ملفات PDF إلى تنسيق Markdown.
npx -y markpdfdownتم تصميم MarkPDFDown لتبسيط عملية تحويل مستندات PDF إلى نص Markdown نظيف وقابل للتعديل. من خلال الاستفادة من نماذج الذكاء الاصطناعي متعددة الوسائط المتقدمة عبر LiteLLM، يمكنها استخراج النص بدقة، والحفاظ على التنسيق، والتعامل مع هياكل المستندات المعقدة بما في ذلك الجداول والصيغ والرسوم البيانية.
- تحويل PDF إلى Markdown: تحويل أي مستند PDF إلى Markdown منسق بشكل جيد
- تحويل الصور إلى Markdown: تحويل الصور إلى Markdown منسق بشكل جيد
- دعم متعدد المزودين: يدعم OpenAI وOpenRouter من خلال LiteLLM
- واجهة سطر أوامر مرنة: أوضاع استخدام تعتمد على الملفات والأنابيب
- الحفاظ على التنسيق: يحافظ على العناوين والقوائم والجداول وعناصر التنسيق الأخرى
- اختيار نطاق الصفحات: تحويل نطاقات صفحات محددة من مستندات PDF
- بنية معمارية نمطية: قاعدة شيفرة نظيفة وقابلة للصيانة مع فصل المسؤوليات
# تثبيت uv إذا لم يكن مثبتًا بالفعل
curl -LsSf https://astral.sh/uv/install.sh | sh
# استنساخ المستودع
git clone https://github.com/MarkPDFdown/markpdfdown.git
cd markpdfdown
# تثبيت التبعيات وإنشاء بيئة افتراضية
uv sync
# تثبيت الحزمة في وضع التطوير
uv pip install -e .conda create -n markpdfdown python=3.9
conda activate markpdfdown
# استنساخ المستودع
git clone https://github.com/MarkPDFdown/markpdfdown.git
cd markpdfdown
# تثبيت التبعيات
pip install -e .# نسخ التكوين النموذجي
cp .env.sample .envقم بتحرير ملف .env بإعداداتك:
# تكوين النموذج
MODEL_NAME=gpt-4o
# مفاتيح API (يكتشفها LiteLLM تلقائيًا)
OPENAI_API_KEY=your-openai-api-key
# أو لـ OpenRouter
OPENROUTER_API_KEY=your-openrouter-api-key
# معلمات اختيارية
TEMPERATURE=0.3
MAX_TOKENS=8192
RETRY_TIMES=3MODEL_NAME=gpt-4o
MODEL_NAME=gpt-4o-mini
MODEL_NAME=gpt-4-vision-previewMODEL_NAME=openrouter/anthropic/claude-3.5-sonnet
MODEL_NAME=openrouter/google/gemini-pro-vision
MODEL_NAME=openrouter/meta-llama/llama-3.2-90b-vision# التحويل الأساسي
markpdfdown --input document.pdf --output output.md
# تحويل نطاق صفحات محدد
markpdfdown --input document.pdf --output output.md --start 1 --end 10
# تحويل صورة إلى markdown
markpdfdown --input image.png --output output.md
# استخدام وحدة python
python -m markpdfdown --input document.pdf --output output.md# PDF إلى markdown عبر الأنبوب
markpdfdown < document.pdf > output.md
# استخدام وحدة python
python -m markpdfdown < document.pdf > output.md# تحويل الصفحات 5-15 من PDF
markpdfdown --input large_document.pdf --output chapter.md --start 5 --end 15
# معالجة ملفات متعددة
for file in *.pdf; do
markpdfdown --input "$file" --output "${file%.pdf}.md"
done# بناء الصورة (إذا لزم الأمر)
docker build -t markpdfdown .
# التشغيل مع متغيرات البيئة
docker run -i \
-e MODEL_NAME=gpt-4o \
-e OPENAI_API_KEY=your-api-key \
markpdfdown < input.pdf > output.md
# استخدام OpenRouter
docker run -i \
-e MODEL_NAME=openrouter/anthropic/claude-3.5-sonnet \
-e OPENROUTER_API_KEY=your-openrouter-key \
markpdfdown < input.pdf > output.mdيستخدم هذا المشروع ruff للتحقق والتنسيق، و pre-commit لفحوصات جودة الكود التلقائية.
# إذا كنت تستخدم uv
uv sync --group dev
# إذا كنت تستخدم pip
pip install -e ".[dev]"# تثبيت خطافات pre-commit
pre-commit install
# تشغيل pre-commit على جميع الملفات (اختياري)
pre-commit run --all-files# تنسيق الكود باستخدام ruff
ruff format
# تشغيل فحوصات التحقق
ruff check
# إصلاح المشكلات القابلة للإصلاح التلقائي
ruff check --fix- Python 3.9+
- uv (موصى به لإدارة الحزم) أو conda/pip
- التبعيات المحددة في
pyproject.toml - الوصول إلى مزودي LLM المدعومين (OpenAI أو OpenRouter)
يتبع المشروع بنية معمارية نمطية:
src/markpdfdown/
├── __init__.py # تهيئة الحزمة
├── __main__.py # نقطة الدخول لـ python -m
├── cli.py # واجهة سطر الأوامر
├── main.py # منطق التحويل الأساسي
├── config.py # إدارة التكوين
└── core/ # الوحدات الأساسية
├── llm_client.py # تكامل LiteLLM
├── file_worker.py # معالجة الملفات
└── utils.py # الوظائف المساعدة
نرحب بالمساهمات! لا تتردد في إرسال طلب سحب.
- انسخ المستودع (Fork)
- أنشئ فرع الميزة الخاص بك (
git checkout -b feature/amazing-feature) - قم بإعداد بيئة التطوير:
uv sync --group dev
pre-commit install- قم بإجراء تغييراتك وتأكد من جودة الكود:
ruff format
ruff check --fix
pre-commit run --all-files- قم بتنفيذ تغييراتك (
git commit -m 'feat: Add some amazing feature') - ادفع إلى الفرع (
git push origin feature/amazing-feature) - افتح طلب سحب
يرجى التأكد من أن الكود الخاص بك يتبع معايير الترميز الخاصة بالمشروع عن طريق تشغيل أدوات التحقق والتنسيق قبل الإرسال.
هذا المشروع مرخص بموجب Apache License 2.0. راجع ملف LICENSE للحصول على التفاصيل.
- شكرًا لمطوري LiteLLM لتوفير وصول موحد إلى LLM
- شكرًا لمطوري نماذج الذكاء الاصطناعي متعددة الوسائط التي تدعم هذه الأداة
- مستوحى من الحاجة إلى أدوات أفضل لتحويل PDF إلى Markdown

