ماركداون
الماركداون هو لغة ترميز خفيفة تتيح لك تنسيق النص باستخدام محرر نص عادي.
هذا المقال يقدم كيفية تحميل مستندات LangChain بتنسيق ماركداون التي يمكننا استخدامها فيما بعد.
from langchain_community.document_loaders import UnstructuredMarkdownLoader
markdown_path = "../../../../../README.md"
loader = UnstructuredMarkdownLoader(markdown_path)
data = loader.load()
data
[Document(page_content="🦜🔗 LangChain\n\n⚡ بناء تطبيقات مع LLMs من خلال القابلية للتركيب ⚡\n\nهل تبحث عن النسخة JS/TS؟ تحقق من LangChain.js.\n\nالدعم في الإنتاج: بينما تقوم بنقل LangChains الخاصة بك إلى الإنتاج، نحن سعداء لنقدم دعمًا شاملاً أكثر. يرجى ملء هذا النموذج وسنقوم بإعداد قناة دعم مخصصة على منصة Slack.\n\nالتثبيت السريع\n\npip install langchain\nor\nconda install langchain -c conda-forge\n\n🤔 ما هذا؟\n\nالنماذج اللغوية الكبيرة (LLMs) تظهر كتكنولوجيا محورية، تمكن المطورين من بناء تطبيقات كانوا سابقاً غير قادرين على بناءها. ومع ذلك، استخدام هذه LLMs بشكل منفصل غالباً ما يكون غير كافٍ لإنشاء تطبيق فعلاً قوي - القوة الحقيقية تأتي عندما يمكنك دمجها مع مصادر أخرى للحساب أو المعرفة.\n\nتهدف هذه المكتبة إلى مساعدة في تطوير تلك الأنواع من التطبيقات. وتشمل الأمثلة الشائعة لهذه التطبيقات:\n\n📚 الإجابة على الأسئلة حول وثائق محددة\n\nوثائق\n\nمثال نهاية إلى نهاية: الإجابة على الأسئلة حول قاعدة بيانات Notion\n\n📬 الروبوتات الدردشة\n\nوثائق\n\nمثال نهاية إلى نهاية: Chat-LangChain\n\n🤖 الوكلاء\n\nوثائق\n\nمثال نهاية إلى نهاية: GPT+WolframAlpha\n\n📝 وثائق\n\nيرجى الاطلاع هنا للحصول على وثائق كاملة حول:\n\nالبدء (التثبيت، إعداد البيئة، أمثلة بسيطة)\n\nأمثلة كيفية (عروض توضيحية، تكاملات، وظائف مساعدة)\n\nالمرجع (وثائق واجهة برمجة التطبيقات الكاملة)\n\nالموارد (شرح عالي المستوى للمفاهيم الأساسية)\n\n🚀 ماذا يمكن أن يساعد هذا؟\n\nهناك ست مجالات رئيسية يتم تصميم LangChain لمساعدتها. وهذه، في تزايد الصعوبة:\n\n📃 LLMs وPrompts:\n\nيشمل ذلك إدارة النص التشجيعي، وتحسين النص التشجيعي، وواجهة عامة لجميع LLMs، وأدوات مشتركة للعمل مع LLMs.\n\n🔗 شبكات:\n\nتتجاوز الشبكات مكالمة LLM واحدة وتشمل سلاسل المكالمات (سواء إلى LLM أو أداة مختلفة). يوفر LangChain واجهة قياسية للشبكات، والكثير من التكامل مع أدوات أخرى، وسلاسل نهاية إلى نهاية لتطبيقات شائعة.\n\n🚚 توليد البيانات الموسعة:\n\nيتضمن توليد البيانات الموسّعة أنواعًا محددة من الشبكات التي تتفاعل أولاً مع مصدر بيانات خارجي لاحتضان بيانات للاستخدام في خطوة التوليد. تشمل الأمثلة تلخيص أجزاء طويلة من النص والإجابة على الأسئلة حول مصادر البيانات المحددة.\n\n🤖 وكلاء:\n\nالوكلاء يتضمن لمّ شمل تكنولوجيا النص الكبير اختيار الإجراءات التي سيتخذها الوكيل بعد ذلك، مشاهدة الملاحظة، وتكرار ذلك حتى الانتهاء. يوفر LangChain واجهة قياسية للوكلاء، ومجموعة من الوكلاء للاختيار من بينها، وأمثلة على الوكلاء نهاية إلى نهاية.\n\n🧠 الذاكرة:\n\nالذاكرة تشير إلى الاحتفاظ بالحالة بين مكالمات سلسلة/وكيل. يوفر LangChain واجهة قياسية للذاكرة، ومجموعة من تنفيذات الذاكرة، وأمثلة لسلاسل/وكلاء يستخدمون الذاكرة.\n\n📐 التقييم:\n\n[BETA] النماذج الإنشائية صعبة بشكل معروف للتقييم باستخدام المقاييس التقليدية. أحد طرق التقييم الجديدة هو استخدام نماذج اللغة ذاتها للقيام بالتقييم. يوفر LangChain بعض النصوص التشجيعية/الشبكات للمساعدة في هذا.\n\nلمزيد من المعلومات حول هذه المفاهيم، يرجى رؤية وثائقنا الكاملة.\n\n📁 المساهمة\n\nبوصفه مشروع مفتوح المصدر في ميدان يتطور بسرعة، نحن مفتوحون للغاية للمساهمات، سواء كان ذلك على شكل ميزة جديدة، بنية تحتية محسنة، أو توثيق أفضل.\n\nللحصول على معلومات مفصلة حول كيفية المساهمة، اطلع هنا.", metadata={'source': '../../../../../README.md'})]
الحفاظ على العناصر
خلف الكواليس، يقوم Unstructured بإنشاء "عناصر" مختلفة لمختلف الكتل النصية. بشكل افتراضي، نقوم بدمجها معًا، ولكن يمكنك بسهولة الاحتفاظ بهذا الفصل عن طريق تحديد mode="elements"
.
loader = UnstructuredMarkdownLoader(markdown_path, mode="elements")
data = loader.load()
data[0]
Document(page_content='ð\x9f¦\x9cï¸\x8fð\x9f”\x97 LangChain', metadata={'source': '../../../../../README.md', 'page_number': 1, 'category': 'Title'})