بوت Telegram مع RAG بدون قواعد بيانات متجهة: مثال على Cloudflare Workers
كيف يمكن إنشاء بوت Telegram بميزات بحث قاعدة معرفة بدون قواعد بيانات متجهة وبنية تحتية باهظة الثمن؟ عرض مطور المكدس العملي بالتفصيل: TypeScript + مكتبة…
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
بوت Telegram مع البحث عن قاعدة معرفة - مهمة شائعة. عادة لهذا يتم استخدام قواعد بيانات متجهة من نوع Pinecone أو Weaviate، والرموز والبنية التحتية السحابية المدفوعة الأجر. أظهر مطور من Habr أن هذا ليس ضرورياً: هناك طريقة أرخص وأبسط.
لماذا قواعد البيانات المتجهة ليست الخيار الوحيد
RAG (استرجاع-توليد معزز) لا يتطلب بالضرورة رموز متجهة. بالنسبة لقاعدة معرفة متوسطة الحجم، يكفي البحث الكامل عن الكلمات الأساسية. تحسب خوارزمية Jaccard تشابه نصين من خلال تقاطع الكلمات - بسيطة وسريعة ولا تتطلب التعلم الآلي.
إليك كيفية عمل ذلك في الممارسة العملية: إذا كانت قاعدة تحتوي على الأسئلة الشائعة حول الدعم الفني، وكتب المستخدم "كيفية إعادة تشغيل الجهاز"، يقسم البوت الطلب إلى كلمات، يبحث عن التطابقات في المستندات، ويأخذ تلك التي بها أكبر تقاطع ويمررها إلى نموذج اللغة الكبير. قد تكون النتائج أفضل حتى من APIs مكلفة لإنشاء الرموز، إذا كان المحتوى منظماً جيداً. أسرع - لأنه لا تحتاج إلى انتظار إنشاء الرموز.
الميزة الرئيسية: لا توجد تبعيات على الخدمات الخارجية، باستثناء API واحد للغة الكبيرة لإنشاء الإجابات. يتم حفظ سجل المحادثات وقاعدة المعرفة نفسها مباشرة على Cloudflare KV - مستودع مدمج مضمن في الخطة المجانية. لا توجد قائمة انتظار لنشر البنية التحتية، وليس هناك فواتير شهرية لتخزين الرموز المتجهة.
كيف تعمل العمارة
يعمل تدفق العمل كالتالي: يكتب المستخدم سؤال في Telegram → يبحث البوت عن المستندات ذات الصلة من قاعدة المعرفة من خلال خوارزمية Jaccard → يأخذ أفضل 3 نتائج ويمررها مع السؤال إلى Groq API (نموذج لغة مجاني) → يولد Groq الإجابة بناءً على المستندات الموجودة → يرسل البوت النتيجة إلى الدردشة. يتم حفظ سجل المحادثة في KV للسياق بين الرسائل. هذا يسمح للبوت بتذكر الأسئلة السابقة وتحسين الإجابات حسب سياق المحادثة.
من الجدير بالملاحظة: تم اختيار Groq ليس عبثاً. إنه خدمة نموذج لغة سريعة بحدود سخية للخطة المجانية، وهو مثالي للدردشات وأنظمة RAG حيث تكون هناك حاجة إلى إنشاء إجابات فورية. يتم تخزين قاعدة المعرفة كمجموعة من المستندات على KV: المفتاح هو معرّف المستند، والقيمة هي النص. عند الطلب، يقوم البوت بتحميل جميع المستندات، ويطبق Jaccard على كل منها، ويرتبها حسب درجة التشابه. يتم توسيع النطاق بسهولة لآلاف المستندات بدون مشاكل.
أي مكدس مطلوب
للتنفيذ، ستحتاج إلى الحد الأدنى من المكونات:
- TypeScript - اللغة التي يتم كتابة جميع الأكواد بها، مع دعم الأنواع
- Telegraf - مكتبة خفيفة وشهيرة للعمل مع Telegram API
- Cloudflare Workers - منصة serverless للنشر (الخطة المجانية ذات حدود سخية)
- Cloudflare KV - مستودع مدمج لقاعدة المعرفة وسجل المحادثات
- Groq API - خدمة نموذج لغة مجانية لإنشاء الإجابات بناءً على المستندات الموجودة
يتم النشر بأمر واحد عبر Wrangler - أداة سطر الأوامر لـ Cloudflare Workers. لا توجد تكوينات خادم، ولا تحتاج إلى استضافة خاصة بك، ولا تحتاج إلى حاويات Docker. إذا لم يتجاوز البوت حدود الخطة المجانية من Workers (مليون طلب شهرياً)، فستكون التكلفة صفراً. للمقارنة: التثبيت النموذجي مع قاعدة بيانات متجهة يتطلب الحد الأدنى من 20-50 دولار شهرياً فقط للتخزين.
ماذا يعني هذا للمطورين
هذا يفتح الطريق أمام أنظمة RAG البسيطة التي كانت تبدو مكلفة جداً أو معقدة للتنفيذ من قبل. بالنسبة للفرق الصغيرة والشركات الناشئة والمتحمسين - هذه طريقة لإطلاق بوت AI مع البحث عن المعرفة بسرعة وبتكلفة عملية. المثال الكلاسيكي: بوت داخل المكتب يجيب على الأسئلة الشائعة والسياسات الشركات والأدلة التقنية والتوثيق. في الماضي، كان مثل هذا المشروع يتطلب تخصيص ميزانية للبنية التحتية وصيانة نظام معقد. الآن كل شيء يمكن أن يعيش في دلو KV واحد ويبدأ العمل في ساعة واحدة. هذا مفيد بشكل خاص للفرق التي تريد إضافة وظيفة AI بسرعة بدون استثمارات كبيرة.
هل تريد التوقف عن قراءة الذكاء الاصطناعي والبدء باستخدامه؟
AI News هو موجز منسق لأخبار الذكاء الاصطناعي. تعلمك Hamidun Academy استخدام الذكاء الاصطناعي في عملك.