من فتره كان عندنا مشكله في طلب الغدا في الشغل
و المشكله هي، مين يطلب النهارده، و خصوصا ان المجموعه اللي بتطلب الأكل كل يوم مش ثابته.
المهم المشكله دي كانت بتسبب تأخير الطلب بشكل كبير، عقبال ما نرسى على مين هيطلب
و المشكله هي، مين يطلب النهارده، و خصوصا ان المجموعه اللي بتطلب الأكل كل يوم مش ثابته.
المهم المشكله دي كانت بتسبب تأخير الطلب بشكل كبير، عقبال ما نرسى على مين هيطلب
عشان نحل المشكله دي، فكرت لو عملنا بوت يختار اسم بشكل عشوائي كل يوم، و بكده يريحنا من الحيره دي، و خصوصا أنا قبل كده كنت جربت أعمل شات بوت في تليجرام (عشان يبعتلي رساله في حال ان احد المواقع اللي كنت شغال عليها حصل فيه مشاكل ما) و الموضوع كان سهل
اول خطوه هي اننا كنا محتاجين ننقل جروب الغدا من الواتساب لتليجرام
بعد كده روحت أنشأت بوت في تليجرام عن طريق ال @TelegramBot و الموضوع مش بياخد أكتر من دقيقتين
بعد كده روحت أنشأت بوت في تليجرام عن طريق ال @TelegramBot و الموضوع مش بياخد أكتر من دقيقتين
المهم نيجي بقى لوقت الكود
البوت في تليجرام بيحتاج تكتب كود عشان يقدر يستلم الرسايل اللي بتتبعت ف الشات و يرد عليها
فيه sdk موجوده للغات كتير تقدر تستخدمها عشان تبرمج البوت، بس أنا قررت اني استعمل python و استخدم python-telegram-bot و دي مكتبه كبيره و ليها docs لا بأس به
البوت في تليجرام بيحتاج تكتب كود عشان يقدر يستلم الرسايل اللي بتتبعت ف الشات و يرد عليها
فيه sdk موجوده للغات كتير تقدر تستخدمها عشان تبرمج البوت، بس أنا قررت اني استعمل python و استخدم python-telegram-bot و دي مكتبه كبيره و ليها docs لا بأس به
المهم بدأت أكتب البوت بحيث يكون بيدعم اكتر من أمر
و أهم أمر عملته اسمه yalla و ده لما بيوصل للبوت، البوت بيروح يختار اسم عشوائي و هو اللي هيطلب الغدا
و أهم أمر عملته اسمه yalla و ده لما بيوصل للبوت، البوت بيروح يختار اسم عشوائي و هو اللي هيطلب الغدا
طب "يلا" ده هيختار من مين بالظبط؟ من كل الناس ف الجروب؟
أكيد لأ… هيختار بس من الناس اللي بدأت تحط طلباتها في الجروب
مبدأيا كده انا هبعت ابعت رساله من البوت الساعه ١١ الصبح بتقول يلا يا شباب ضيفوا طلابتكم، و من الوقت ده بروح اشوف مين اللي بيكتب في الجروب
أكيد لأ… هيختار بس من الناس اللي بدأت تحط طلباتها في الجروب
مبدأيا كده انا هبعت ابعت رساله من البوت الساعه ١١ الصبح بتقول يلا يا شباب ضيفوا طلابتكم، و من الوقت ده بروح اشوف مين اللي بيكتب في الجروب
و أي حد هيكتب ف الجروب هاخد اسمه احطه في list و دي الليسته اللي ههختار منها اسم عشوائي
(خد بالك كل الام لحد دلوقتي في ال memory، و ده سبب مشكله و حليتها بعدين زي ما هنشوف)
(خد بالك كل الام لحد دلوقتي في ال memory، و ده سبب مشكله و حليتها بعدين زي ما هنشوف)
موضوع اختيار اسم حد عشوائي من الناس اللي كتبت ف الجروب مش دقيق
عشان احيانا حد بيدخل يروش و حقيقي هو مش هيطلب ولا حاجه
طب ازاي بقى هعرف اذا كان اللي مكتوب هنا طلب أكل ولا لأ؟
عشان احيانا حد بيدخل يروش و حقيقي هو مش هيطلب ولا حاجه
طب ازاي بقى هعرف اذا كان اللي مكتوب هنا طلب أكل ولا لأ؟
هنا بقى جه دور ال ai chat api
أول حاجه جربتها روحت فتحت chatgpt و سألته اذا كان الكلام ده فيه اسم أكل او لا "دجاج" قالي اه حيث ان مش عارف ايه و ايه …
ايه الحوسه دي، هعمل parse للرد ده ازاي؟!
فكرت اني اغير السؤال و اقوله جاول ب yes or no
و هنا فعلا عمل زي منا عاوز منه بالظبط
أول حاجه جربتها روحت فتحت chatgpt و سألته اذا كان الكلام ده فيه اسم أكل او لا "دجاج" قالي اه حيث ان مش عارف ايه و ايه …
ايه الحوسه دي، هعمل parse للرد ده ازاي؟!
فكرت اني اغير السؤال و اقوله جاول ب yes or no
و هنا فعلا عمل زي منا عاوز منه بالظبط
روحت جربت كذا حد تاني منهم google gemini و سألته نفس السؤال على أكلات عربيه معروفه، و لقيت أشطر واحد فيهم هو chatgpt
فقولت خلاص لما اروح chatgpt و أشوف موضوع ال api ده قصته ايه
المهم دخلت معرفتش الحسبه ازاي، قولت خليني اشوف حاجه مجانيه و فعلا لقيت مكتبه اسمها g4f في البايثون
فقولت خلاص لما اروح chatgpt و أشوف موضوع ال api ده قصته ايه
المهم دخلت معرفتش الحسبه ازاي، قولت خليني اشوف حاجه مجانيه و فعلا لقيت مكتبه اسمها g4f في البايثون
(يبدوا إنّ بايثون كان خيار جيد من البدايه 😁)
المهم بدأت استخدم المكتبه دي و أسألها نفس السؤال مع بعض التعديلات، و كانت النتايج مبشره
الموضوع مر بمجموعة تعديلات
لكن بالنهايه الموضوع مشي كالتالي
المهم بدأت استخدم المكتبه دي و أسألها نفس السؤال مع بعض التعديلات، و كانت النتايج مبشره
الموضوع مر بمجموعة تعديلات
لكن بالنهايه الموضوع مشي كالتالي
أول حاجه الساعه ١١ الصبح بنبعت الرساله للناس و بروح أفضي الليسته بتاعة الطلبات من طلبات امبارح
و عملت function اسمها is_food و بتاخد أي كلام بتكتب ف الشات و تروح لو أكل بتضيفه ف الليسته ( مع اسم صاحب الطلب و معلومات تانيه)
و عمل أمر اسمه list عشان يعرض الطلبات
و عملت function اسمها is_food و بتاخد أي كلام بتكتب ف الشات و تروح لو أكل بتضيفه ف الليسته ( مع اسم صاحب الطلب و معلومات تانيه)
و عمل أمر اسمه list عشان يعرض الطلبات
و انا كده كل اللي محتاجه مكان اشغل فيه الابلكيشن في ال memory و مش محتاج اخزن حاجه
و كل الناس عاشت في سعاده
لحد ما جاء اليوم اللي حصل فيه اللي حصل ….
و كل الناس عاشت في سعاده
لحد ما جاء اليوم اللي حصل فيه اللي حصل ….
قبل ما أقول حصل ايه، و بما ان الأوفرانجينيرنج يمشي في الدماء
انا لاحظت ان المكتبه بتاعة ال python اللي اسمها python-telegram-bot مكتبه عامه جدا، و لقيت فرصه اني ابني فوقها مكتبه تكون متخخصه بشكل أكبر بحيث تسهل بناء ال chatbots البسيطه
وقد كان … عملتها و سميتها telebot
انا لاحظت ان المكتبه بتاعة ال python اللي اسمها python-telegram-bot مكتبه عامه جدا، و لقيت فرصه اني ابني فوقها مكتبه تكون متخخصه بشكل أكبر بحيث تسهل بناء ال chatbots البسيطه
وقد كان … عملتها و سميتها telebot
في اليوم ده مكنش فيه رد، دخلت أبص على اللوجز شوفت ال g4f مش بيرد، فقولت الناس، معلش ضيفم طلباتكم النهارده يدوي باستخدام الأمر add
المهم بدأو يضيفو طلباتهم و بعد شويه بيعملو list لقو مفيش طلبات 😱
ده معناه ان الابلكيشن حصله كراش و ال PaaS عمله ريستارت 😩
المهم بدأو يضيفو طلباتهم و بعد شويه بيعملو list لقو مفيش طلبات 😱
ده معناه ان الابلكيشن حصله كراش و ال PaaS عمله ريستارت 😩
و من الساعه دي قررت اني محتاج اخزن الطلبات على ال disk
و برده فكرت أعمل cache للأكل عشان بدل ما كل مره أروح ل chatgpt اروح اجيب المعلومه من ال cache على طول
و قد كان، بنيت storage service بسيطه باستخدام الfiles في البايثون و بقت بتخزن و بتسترجع بشكل reliable حتى لو حصل ريستارت
و برده فكرت أعمل cache للأكل عشان بدل ما كل مره أروح ل chatgpt اروح اجيب المعلومه من ال cache على طول
و قد كان، بنيت storage service بسيطه باستخدام الfiles في البايثون و بقت بتخزن و بتسترجع بشكل reliable حتى لو حصل ريستارت
الجدير بالذكر اني بنيت selection algo معقد شويه بحيث يستثني اخر اتنين طلبو
و لما عرّفت الشباب بقو يروحو يعملو yalla من بدري قبل ما حد يصيف اكل عشان اسمهم ينضاف و يتم استثناءهم من الاسماء، فاضطريت اني اخلي الدنيا بسيطه و اخلي الدنيا random بشكل بسيط و محسبش ال selection history
و لما عرّفت الشباب بقو يروحو يعملو yalla من بدري قبل ما حد يصيف اكل عشان اسمهم ينضاف و يتم استثناءهم من الاسماء، فاضطريت اني اخلي الدنيا بسيطه و اخلي الدنيا random بشكل بسيط و محسبش ال selection history
ملاحظه، الشباب لحد النهارده كانو متأكدين اني شايل اسمي من الاختيارات، لاني من ساعة ما بدأنا و لمدة اسبوعين تقريبا، اسمي اول مره يتم اختياره اليوم 😂
و اخيرا عاوز اقول ان البوت موجود على ال github لو حابب تاخده تعمله ديبلوي في اي مكان
ده لينك البوت على ال github فيها طريقة تشغيله (انا مشغله على fly.io وتقريبا مش بيكلفني حاجه شهريا)
github.com
و ده لينك المكتبه telebot
github.com
ده لينك البوت على ال github فيها طريقة تشغيله (انا مشغله على fly.io وتقريبا مش بيكلفني حاجه شهريا)
github.com
و ده لينك المكتبه telebot
github.com
fly.io
Launch Apps Near Users
Full Linux micro-VMs running on our metal, built from your own containers with a single command or A...
github.com/mhewedy/telebot
GitHub - mhewedy/telebot: Telegram bot library abstraction on top of python-telegram-bot
Telegram bot library abstraction on top of python-telegram-bot - mhewedy/telebot
github.com/mhewedy/Lunchy
GitHub - mhewedy/Lunchy: Telegram bot to choose one person from the chat group participants randomly based on some criteria(to order for the lunch)
Telegram bot to choose one person from the chat group participants randomly based on some criteria(t...
و اخيرا happy coding!
جاري تحميل الاقتراحات...