أداة مفتوحة المصدر لإنشاء ملفات معرفية عن طريق الزحف إلى مواقع الويب، مما يتيح إنشاء مساعد GPT مخصص بسرعة.
نظرة عامة على مشروع 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 مخصص (الوصول عبر واجهة المستخدم)
- انتقل إلى https://chat.openai.com/
- انقر فوق اسم المستخدم في الزاوية السفلية اليسرى
- حدد "My GPTs" في القائمة
- حدد "Create a GPT"
- حدد "Configure"
- ضمن "Knowledge"، حدد "Upload a file" وقم بتحميل الملف الذي تم إنشاؤه
ملاحظة: قد تحتاج إلى خطة ChatGPT مدفوعة لإنشاء واستخدام GPT مخصص
إنشاء مساعد (الوصول عبر API)
- انتقل إلى https://platform.openai.com/assistants
- انقر فوق "+ Create"
- حدد "upload" وقم بتحميل الملف الذي تم إنشاؤه
الخصائص التقنية
- تطوير TypeScript: يوفر أمانًا من النوع وتجربة تطوير أفضل
- خادم Express.js: يوفر واجهة RESTful API
- دعم Docker: يسهل النشر في حاويات
- محددات مرنة: يدعم محددات CSS لتحديد المحتوى بدقة
- تصفية الموارد: يمكن استبعاد أنواع الموارد غير الضرورية مثل الصور ومقاطع الفيديو
- التحكم في الحجم: يدعم تقييد حجم الملف وعدد الرموز المميزة
حالات الاستخدام الفعلية
استخدم مؤلف المشروع هذه الأداة لإنشاء مساعد Builder.io، من خلال الزحف إلى وثائق Builder.io للإجابة على الأسئلة المتعلقة بكيفية استخدام ودمج Builder.io.
المزايا وسيناريوهات التطبيق
- نشر سريع: يمكن إنشاء مساعد معرفة احترافي في غضون دقائق
- فعالية التكلفة: إنشاء مساعدين يعملون بالذكاء الاصطناعي بسرعة بناءً على الوثائق الحالية
- تخصيص قوي: يدعم قواعد المعرفة الخاصة بمجالات أو منتجات معينة
- سهولة الصيانة: يمكن إعادة الزحف بانتظام لتحديث قاعدة المعرفة
تنبيهات
- تأكد من أن لديك إذنًا بالزحف إلى موقع الويب المستهدف
- قد تحتاج إلى تقسيم الملفات الكبيرة جدًا قبل التحميل
- يجب مراعاة حدود معدل الزحف لموقع الويب
- يوصى باختبار الزحف على نطاق صغير أولاً للتحقق من التكوين
ملخص
يوفر GPT-Crawler حلاً قويًا ومرنًا لإنشاء مساعدين يعملون بالذكاء الاصطناعي بسرعة، وهو مناسب بشكل خاص للسيناريوهات التي تتطلب إنشاء أنظمة أسئلة وأجوبة ذكية بناءً على الوثائق الحالية أو محتوى موقع الويب.