Home
Login

أداة مفتوحة المصدر لإنشاء ملفات معرفية عن طريق الزحف إلى مواقع الويب، مما يتيح إنشاء مساعد GPT مخصص بسرعة.

ISCTypeScript 21.6kBuilderIO Last Updated: 2025-01-23

نظرة عامة على مشروع GPT-Crawler

GPT-Crawler هو مشروع مفتوح المصدر تم تطويره بواسطة Builder.io، ويهدف إلى إنشاء ملفات معرفية عن طريق الزحف إلى مواقع ويب محددة، وبالتالي إنشاء مساعدين GPT مخصصين بسرعة. تتطلب هذه الأداة توفير عنوان URL واحد أو أكثر، وستقوم تلقائيًا بالتقاط محتوى موقع الويب وإنشاء ملفات بيانات يمكن استخدامها لتدريب GPT مخصص.

الوظائف الأساسية

  • الزحف إلى محتوى موقع الويب: التقاط محتوى مواقع الويب المحددة تلقائيًا
  • إنشاء ملفات معرفية: تحويل المحتوى الذي تم الزحف إليه إلى تنسيق يمكن استخدامه لتدريب GPT
  • تكوين مرن: يدعم العديد من خيارات التكوين، بما في ذلك قواعد الزحف ومحددات الصفحات وما إلى ذلك
  • طرق نشر متعددة: يدعم التشغيل المحلي والنشر في حاويات ووضع خادم API

التثبيت والاستخدام

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

  • Node.js >= 16

بداية سريعة

git clone https://github.com/builderio/gpt-crawler
npm i

ملف التكوين

في ملف config.ts، قم بتحرير خصائص url و selector لتلبية احتياجاتك.

مثال على التكوين:

export const defaultConfig: Config = {
  url: "https://www.builder.io/c/docs/developers",
  match: "https://www.builder.io/c/docs/**",
  selector: `.docs-builder-container`,
  maxPagesToCrawl: 50,
  outputFileName: "output.json",
};

شرح مفصل لخيارات التكوين

type Config = {
  /** عنوان URL لبدء الزحف، إذا تم توفير خريطة موقع، فسيتم استخدام خريطة الموقع وتنزيل جميع الصفحات الموجودة فيها */
  url: string;
  /** نمط لمطابقة الروابط على الصفحة للزحف اللاحق */
  match: string;
  /** محدد لالتقاط النص الداخلي */
  selector: string;
  /** لا تزحف إلى أكثر من هذا العدد من الصفحات */
  maxPagesToCrawl: number;
  /** اسم ملف البيانات المكتملة */
  outputFileName: string;
  /** أنواع الموارد الاختيارية التي يجب استبعادها */
  resourceExclusions?: string[];
  /** الحد الأقصى الاختياري لحجم الملف (ميغابايت) */
  maxFileSize?: number;
  /** الحد الأقصى الاختياري لعدد الرموز المميزة */
  maxTokens?: number;
};

تشغيل الزاحف

npm start

سيؤدي هذا إلى إنشاء ملف output.json.

خيارات النشر

النشر في حاويات

انتقل إلى دليل containerapp وقم بتعديل config.ts، وسيتم إنشاء ملف الإخراج في مجلد data.

وضع خادم API

npm run start:server
  • يعمل الخادم افتراضيًا على المنفذ 3000
  • استخدم نقطة النهاية /crawl لطلبات POST
  • يمكن عرض وثائق API في نقطة النهاية /api-docs (باستخدام Swagger)
  • يمكنك نسخ .env.example إلى .env لتخصيص متغيرات البيئة

تكامل OpenAI

إنشاء GPT مخصص (الوصول عبر واجهة المستخدم)

  1. انتقل إلى https://chat.openai.com/
  2. انقر فوق اسم المستخدم في الزاوية السفلية اليسرى
  3. حدد "My GPTs" في القائمة
  4. حدد "Create a GPT"
  5. حدد "Configure"
  6. ضمن "Knowledge"، حدد "Upload a file" وقم بتحميل الملف الذي تم إنشاؤه

ملاحظة: قد تحتاج إلى خطة ChatGPT مدفوعة لإنشاء واستخدام GPT مخصص

إنشاء مساعد (الوصول عبر API)

  1. انتقل إلى https://platform.openai.com/assistants
  2. انقر فوق "+ Create"
  3. حدد "upload" وقم بتحميل الملف الذي تم إنشاؤه

الخصائص التقنية

  • تطوير TypeScript: يوفر أمانًا من النوع وتجربة تطوير أفضل
  • خادم Express.js: يوفر واجهة RESTful API
  • دعم Docker: يسهل النشر في حاويات
  • محددات مرنة: يدعم محددات CSS لتحديد المحتوى بدقة
  • تصفية الموارد: يمكن استبعاد أنواع الموارد غير الضرورية مثل الصور ومقاطع الفيديو
  • التحكم في الحجم: يدعم تقييد حجم الملف وعدد الرموز المميزة

حالات الاستخدام الفعلية

استخدم مؤلف المشروع هذه الأداة لإنشاء مساعد Builder.io، من خلال الزحف إلى وثائق Builder.io للإجابة على الأسئلة المتعلقة بكيفية استخدام ودمج Builder.io.

المزايا وسيناريوهات التطبيق

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

تنبيهات

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

ملخص

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