هذا دليل حول كيفية إنشاء Telegram Bot مدعومًا بشهادة LLM (على سبيل المثال llama2-chat، llama2-chat-32k، vicuna). تتم استضافة الروبوت على مثيل EC2 ذو الطبقة المجانية، ويتم استضافة استدلال llm على Beam Cloud كواجهة برمجة تطبيقات REST بدون خادم، وهي مجانية لأول 10 ساعات من الحوسبة. الأمر برمته بطيء جدًا، لكن هذه مجرد نقطة بداية.
يمكنك اتباع هذا الدليل لإنشاء Python Telegram Bot:
كيفية إنشاء بوت تيليجرام باستخدام لغة بايثون
وهنا سأعطيك الخطوات الرئيسية:
يمكنك الآن بدء محادثة مع الروبوت الخاص بك من خلال البحث عن اسم المستخدم على Telegram.
أما بالنسبة لاستضافة استدلال ماجستير فإن أفضل خيار وجدته الآن هو Beam Cloud. تعد أسعار الحوسبة الخاصة بهم من بين أرخص الأسعار وتوفر 10 ساعات من الحوسبة المجانية مع وحدات معالجة الرسومات الرائعة. عرض التخزين المجاني، وهو محل تقدير كبير.
تم تصميم روبوت الدردشة باستخدام langchain وhuggingface. لذا، إذا كنت ترغب في الحصول على مجموعة نماذج Llama 2، فستحتاج إلى طلب الوصول إلى النماذج. من السهل جدًا القيام بذلك وهم سريعون جدًا في الموافقة على الطلب.
TODO لقد استخدمت مصدرين لتجميع langchain وHF، وسأضيفهما في أسرع وقت ممكن.
إذا كنت ترغب في استخدام النماذج المسورة، فسوف تحتاج إلى تعيين رمز معانقة للوجه. هذا موجود في الكود، وسوف أقوم بإصلاحه في الأيام القادمة.
هذا دليل لإنشاء الرمز المميز:
HuggingFace رموز وصول المستخدم
بمجرد إنشاء حسابك، لا توجد طريقة دفع مطلوبة، انتقل إلى لوحة التحكم وضمن علامة التبويب "الإعدادات" في القائمة اليمنى، يمكنك العثور على الأسرار. إذا كنت تستخدم نموذجًا مثل llama 2 الذي يتطلب رمزًا مميزًا للوجه المعانق، فأنت بحاجة إلى تعيين المتغير HF_TOKEN باستخدام رمز الوجه المعانق.
ثم يمكنك أن تفعل كل شيء محليا. انتقل إلى الدليل الفرعي lm.
cd ./src/telegram_llm_bot/shared/llm/beam
اتبع دليل تثبيت Beam Beam Installation.
داخل ملف app.py يمكنك تعديل المتغيرات التالية أو تركها كما هي. سأنقلهم قريبًا إلى ملف التكوين:
HF_CACHE = "./models"
MODEL_ID = "meta-llama/Llama-2-7b-chat-hf"
APP_NAME = "travel-guru"
GPU = "T4"
MEMORY = "16Gi"
أنت جاهز لنشر التطبيق:
beam deploy app.py
يجب أن يكون التطبيق جاهزًا للعمل الآن. انتقل إلى Beam Dashboard وضمن علامة التبويب "التطبيقات"، يمكنك العثور على تطبيقك.
يمكنك استضافة الروبوت الخاص بك مجانًا على مثيل EC2 ذو الطبقة المجانية. وهذا دليل يمكنك اتباعه:
البرنامج التعليمي: ابدأ استخدام مثيلات Amazon EC2 Linux
أثناء إنشاء المثيل، عليك أن تتذكر إنشاء زوج مفاتيح ستستخدمه للاتصال عبر ssh بمثيلك عن بُعد.
أوصي بتعيين Ubuntu كنظام تشغيل.
بمجرد تعيين زوج المفاتيح، سيتم تنزيل ملف .pem تلقائيًا.
يمكنك الآن الاتصال بمثيل ec2 عبر سطر الأوامر باستخدام ssh:
ssh -i " {filename}.pem " ubuntu@{address}.{region}.compute.amazonaws.com
قم باستنساخ هذا المستودع على مثيل ec2. سنحتاج فقط إلى مجلد الروبوت، ونحتاج إلى الباقي، لذا ربما سأفصله عن الباقي في المستقبل، فهذه ليست مشكلة كبيرة في الوقت الحالي:
git clone https://github.com/ma2za/telegram-llm-bot.git
انتقل إلى دليل الروبوت
cd telegram-llm-bot
قم بإنشاء ملف .env لتعيين متغيرات البيئة المشتركة لجميع برامج الروبوت الخاصة بك
touch .env
عبر nano قم بتعديل محتوى .env بالمحتوى التالي.
MONGO_HOST=telegram-mongo
MONGO_PORT=27017
هذا مطلوب لإعداد قاعدة بيانات MongoDB لتخزين المحادثات.
قم بإنشاء ملف .env آخر خاص بالروبوت لتعيين متغيرات البيئة
touch ./src/telegram_llm_bot/bots/base_chatbot/.env
عبر nano قم بتعديل محتوى .env بالمحتوى التالي.
TELEGRAM_BOT_TOKEN =
BEAM_TOKEN =
BEAM_URL = https://apps.beam.cloud/{something}
SETTINGS_FILE=telegram_llm_bot.bots.base_chatbot.settings
BOT_NAME=travel-guru
TELEGRAM_BOT_TOKEN هو الرمز المميز الذي تلقيناه سابقًا من BotFather.
BEAM_TOKEN : ضمن مفاتيح واجهة برمجة التطبيقات (API Keys) في لوحة معلومات تطبيق Beam، يمكنك إنشاء رمز مميز لـ Beam.
يتم الحصول على BEAM_URL من نظرة عامة على التطبيق حيث يمكنك النقر فوق Call API وهناك يمكنك بسهولة معرفة عنوان url
يمكننا أخيرًا استخدام عامل الإرساء لإنشاء الصور وتشغيل الحاويات.
قم بتثبيت Docker وDocker compose. هنا هو الدليل الرسمي:
تثبيت محرك Docker على أوبونتو
بناء وإنشاء وبدء تشغيل الحاويات:
sudo docker compose up -d --build
لقد انتهينا هنا!
توجد مطالبات النظام في config.yml .
أنت جاهز للدردشة!