HyperAIHyperAI

Command Palette

Search for a command to run...

كيفية تحويل أي موقع إلكتروني إلى قاعدة معرفية تعتمد على الرسوم البيانية مع رفيق ذكاء اصطناعي جاهز للعمل

كيفية تحويل أي موقع إلكتروني إلى قاعدة بيانات معرفية باستخدام مساعد ذكاء اصطناعي جاهز للإنتاج مقدمة تحتفظ الشركات بمعلومات غزيرة، لكن العثور على إجابات محددة قد يكون أمرًا مزعجًا وغير فعال للمستهلكين أو أعضاء الفريق الداخلي. يحسن المساعد المخصص ذو الفهم الشامل للأعمال والمنتجات والخدمات التفاعل مع العملاء ويُبسط الوصول إلى المعلومات الداخلية. هذا هو المكان الذي يتطلب فيه إنشاء قاعدة بيانات معرفية ومُ��َهِّز مساعدة (UI) للمستخدمين. في هذا الدليل، سنستفيد من قوة الأدوات المفتوحة المصدر لتحويل محتوى أي موقع إلكتروني موجود إلى مساعد ذكاء اصطناعي جاهز للاستخدام. ستتعلم كيف تقوم ب: استخراج محتوى الموقع الإلكتروني باستخدام Crawl4ai. بناء قاعدة بيانات معرفية باستخدام R2R. بدء استفسارات المستخدمين من خلال الواجهة التفاعلية للمساعد. معاينة الأدوات ما هو Crawl4ai؟ Crawl4ai هو إطار عمل مفتوح المصدر مصمم خصيصًا لعمليات الزحف والتجريد من الإنترنت الحديثة. يختلف عن المجردين التقليديين في أنه مصمم لاستخراج وتجميع محتوى الموقع الإلكتروني بطريقة يمكن لموديلات اللغات الكبيرة (LLMs) استخدامها بكفاءة. ما هو R2R: Reason to Retrieve؟ R2R هو منصة استرجاع ذكاء اصطناعي متقدمة وجاهزة للإنتاج، تقدم وظيفة الاسترجاع المعززة بالبحث (RAG) عبر واجهة برمجة تطبيقات RESTful. يدعم المحتوى متعدد الوسائط، البحث الهجين، إدارة المستخدمين والأوراق. كما يأتي مع واجهة مستخدم سهلة لتحميل وإدارة الأوراق ومحادثة مساعدة تفاعلية، مما يجعله نظامًا كاملًا من النهاية إلى النهاية لبناء واجهات معرفية ذكية. مرحلة التحضير: استخراج محتوى الموقع الإلكتروني باستخدام Crawl4ai سنبدأ باستخدام ميزة الزحف العميق في Crawl4ai لاستخراج محتوى محدد من موقع Books to Scrape، وهو موقع مصمم خصيصًا لممارسة الزحف والتجريد. سنقوم بتجميع تفاصيل المنتجات مثل العناوين، الأسعار، الفئات والمتوفرية. إعداد البيئة التطويرية: python uv venv .venv --python=python3.12 source .venv/bin/activate تثبيت الاعتمادات اللازمة: python pip install crawl4ai pydantic إعداد مفاتيح API لموفري LLM: python echo -e "OPENAI_API_KEY=$(read -sp 'أدخل مفتاح API الخاص بـ OpenAI: ' okey && echo $okey)\nGROQ_API_KEY=$(read -sp 'أدخل مفتاح API الخاص بـ Groq: ' gkey && echo $gkey)" > .env && echo -e "\n✅ تم إنشاء ملف .env بنجاح" كتابة نص البرمجة لتنفيذ الزحف: ```python import getpass import os import asyncio from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, BrowserConfig, CacheMode, LLMConfig from crawl4ai.content_scraping_strategy import LXMLWebScrapingStrategy from crawl4ai.deep_crawling import BFSDeepCrawlStrategy from crawl4ai.deep_crawling.filters import FilterChain, URLPatternFilter, ContentTypeFilter from pydantic import BaseModel from crawl4ai.extraction_strategy import LLMExtractionStrategy import json from dotenv import load_dotenv load_dotenv() def _set_env(var: str): if not os.environ.get(var): os.environ[var] = getpass.getpass(f"{var}: ") _set_env("OPENAI_API_KEY") _set_env("GROQ_API_KEY") class ProductDetails(BaseModel): upc: str type: str price: str inventory_count: int class Product(BaseModel): title: str description: str details: ProductDetails extraction_strategy = LLMExtractionStrategy( llm_config=LLMConfig(provider="groq/deepseek-r1-distill-llama-70b", api_token=os.getenv('GROQ_API_KEY')), schema=Product.model_json_schema(), extraction_type="schema", instruction="استخرِج جميع كائنات المنتجات المحددة في المخطط من النص.", chunk_token_threshold=1200, overlap_rate=0.1, apply_chunking=True, input_format="html", extra_args={"temperature": 0.1, "max_tokens": 1000}, verbose=True ) async def run_advanced_crawler(): filter_chain = FilterChain([ URLPatternFilter(patterns=["catalogue"], reverse=False), URLPatternFilter(patterns=["category", "/books/"], reverse=True), ContentTypeFilter(allowed_types=["text/html"]) ]) config = CrawlerRunConfig( deep_crawl_strategy=BFSDeepCrawlStrategy(max_depth=2, include_external=False, max_pages=2, filter_chain=filter_chain), cache_mode=CacheMode.BYPASS, extraction_strategy=extraction_strategy, scraping_strategy=LXMLWebScrapingStrategy(), verbose=True ) outputs = [] browser_cfg = BrowserConfig(headless=True) async with AsyncWebCrawler(config=browser_cfg) as crawler: results = await crawler.arun("https://books.toscrape.com/index.html", config=config) for result in results: if result.success: url = result.url try: data = json.loads(result.extracted_content) if isinstance(data, list) and len(data) > 0: if any(item.get('error', False) for item in data if isinstance(item, dict)): error_items = [item for item in data if isinstance(item, dict) and item.get('error', False)] error_content = error_items[0].get('content', 'خطأ غير معروف') if error_items else 'خطأ غير معروف' print(f"خطأ في البيانات المستخرجة من {url}: {error_content}") continue print(f"تم استخراج البيانات بنجاح من {url}") extraction_strategy.show_usage() for item in data: if isinstance(item, dict): item['source_url'] = url outputs.extend(data) except json.JSONDecodeError: print(f"خطأ في تحليل JSON من {url}: {result.extracted_content}") else: print(f"خطأ في الزحف إلى {url}: {result.error_message}") if outputs: output_file = "extracted_products.json" with open(output_file, 'w', encoding='utf-8') as f: json.dump(outputs, f, indent=4, ensure_ascii=False) print(f"تم حفظ بيانات {len(outputs)} منتج في ملف {output_file}") if name == "main": asyncio.run(run_advanced_crawler()) ``` توضيح الكود إعداد مفاتيح API لموفري LLM: نتأكد من تحميل مفاتيح API لموفري LLM في البيئة التطويرية. تعريف نموذج البيانات باستخدام Pydantic: نستخدم Pydantic لتعريف مخطط محدد للبيانات المنتجية، مما يضمن أن البيانات المستخرجة تكون نظيفة وثابتة وقابلة للقراءة آليًا. استخراج المحتوى باستخدام استراتيجية LLM: نستخدم استراتيجية LLMExtractionStrategy لاستخراج البيانات المنتجية مباشرة من HTML الخام. يتم تقسيم HTML إلى قطع صغيرة متداخلة للبقاء ضمن حدود الرموز. إعداد سلسلة الفلاتر للزحف المستهدف: نستخدم FilterChain لتحديد الأنماط التي يجب تضمينها أو استبعادها في الزحف، مثل صفحات التفاصيل الخاصة بالمنتج فقط. إعداد الزاحف: نقوم بإعداد زاحف الزحف العميق باستخدام BFSDeepCrawlStrategy وربطه باستراتيجية الاستخراج LLM. تنفيذ الزحف: نقوم بتشغيل الزحف باستخدام AsyncWebCrawler، مما يمكّن من الزحف إلى الصفحات بشكل متزامن، مما يسرع عملية الاستخراج. بناء قاعدة البيانات المعرفية باستخدام R2R بعد استخراج المحتوى المهيكل، الخطوة النهائية هي تحويله إلى قاعدة بيانات معرفية. سنستخدم R2R لبناء هذه القاعدة تلقائيًا وتوفير واجهة تفاعلية للمساعد. تثبيت R2R: قبل استخدام R2R، يجب تثبيته محليًا. يدعم R2R كلاً من الوضع الخفيف والوضع الكامل. لغرض هذا الدليل، سنستخدم الوضع الكامل. bash uv pip install r2r إدخال الملفات: نقوم بإدخال الملف JSON المستخرج في R2R. ```python from r2r import R2RClient # إنشاء العميل client = R2RClient(base_url="http://localhost:7272") # إنشاء وثيقة client.documents.create(file_path='./extracted_products.json') ``` التحقق من حالة الملف: نتأكد من معالجة الوثائق بشكل صحيح. python client.documents.list() تنفيذ البحث: نقوم بإجراء استفسارات RAG لطرح أسئلة محددة بناءً على البيانات المستخرجة. python client.retrieval.rag(query="كم عدد نسخ كتاب A Light in the Attic الموجودة في المخزون؟") الاستنتاج خلال هذا الدليل، استكشفنا كيفية تحويل محتوى موقع إلكتروني ثابت إلى قاعدة بيانات معرفية ديناميكية قابلة للاستفسار، مكتملة بمساعد ذكاء اصطناعي جاهز للإنتاج باستخدام أدوات مفتوحة المصدر. استخدمنا ميزات Crawl4ai المتقدمة لاستخراج وتجميع البيانات من الموقع الإلكتروني بشكل كفء، ثم قمنا بدمج هذه البيانات في R2R، منصة قوية تقوم ببناء قاعدة بيانات معرفية تلقائيًا وتوفير قدرات RAG عبر واجهة مساعدة تفاعلية وواجهة برمجة تطبيقات برمجية. باستخدام هذه الأدوات المفتوحة المصدر، يمكننا تجاوز عمليات البحث البسيطة بالكلمات المفتاحية وتمكين التفكير المعقد متعدد الخطوات على محتوى موقعك الإلكتروني. سواء كنت ترغب في بناء محادثة دعم العملاء أو نظام إدارة المعرفة الداخلي، فإن المنهجية المذكورة هنا تقدم أساسًا صلبًا لتحقيق ذلك. تقييم الحدث من قِبل مختصين في المجال يمكن لهذه المنهجية أن تحدث ثورة في طريقة التعامل مع البيانات المعرفية في الشركات. فهي تتيح الوصول السريع والفعال إلى المعلومات، مما يعزز تجربة المستخدم ويُبسط العمليات الداخلية. ومع ذلك، يجب مراعاة تكلفة استخدام نماذج الذكاء الاصطناعي، خاصة عند التعامل مع كميات كبيرة من البيانات. نبذة تعريفية عن الشركة ذات الصلة Crawl4ai هو إطار عمل مفتوح المصدر يهدف إلى تسهيل استخراج المحتوى من المواقع الإلكترونية لتوفيره لموديلات الذكاء الاصطناعي. R2R هو منصة ذكاء اصطناعي متكاملة تسمح ببناء قواعد بيانات معرفية تلقائيًا وتوفير واجهات تفاعلية للاستفسارات، مما يجعلها خيارًا مميزًا لبناء أنظمة معرفية ذكية وفعالة.

الروابط ذات الصلة

كيفية تحويل أي موقع إلكتروني إلى قاعدة معرفية تعتمد على الرسوم البيانية مع رفيق ذكاء اصطناعي جاهز للعمل | القصص الشائعة | HyperAI