
كيفية برمجة تطبيق لإنشاء روبوت محادثة باستخدام بايثون و ChatterBot
في عصر الذكاء الاصطناعي، أصبحت روبوتات المحادثة (Chatbots) جزءاً لا يتجزأ من حياتنا الرقمية.
تُستخدم هذه الروبوتات في خدمة العملاء، والدعم الفني، وحتى للترفيه.
تُعد لغة بايثون (Python) خيارًا مثاليًا لإنشاء هذه التطبيقات بفضل مكتباتها القوية مثل
ChatterBot. في هذا المقال، سنرشدك خطوة بخطوة لبرمجة روبوت محادثة خاص بك.
برمجة روبوت محادثة ليست سحرًا، بل هي فن تدريب خوارزميات الذكاء الاصطناعي على فهم لغتنا.
باستخدام ChatterBot، يمكنك بناء الأساس لروبوت ذكي قادر على التعلم من تجارب المحادثة.
المهمة الأساسية للروبوت ليست الردود، بل القدرة على التعلم من بياناتك لتقديم أفضل إجابة.
اداوت المهمة لبرمجة تطبيق لإنشاء روبوت محادثة
لإنشاء هذا التطبيق،ستحتاج إلى استخدام مجموعة من الأدوات والبرامج
يمكن تقسيمها إلى ثلاث فئات رئيسية:
1. لغة البرمجة (Python)
هو لغة البرمجة التي ستستخدمها لكتابة جميع الأكواد الخاصة بمنطق الروبوت.
يجب عليك تنزيلها وتثبيتها من الموقع الرسمي.
2. محرر الأكواد (Code Editor)
هذا هو البرنامج الذي ستستخدمه لكتابة وتنظيم أكواد بايثون.
- البرنامج الموصى به: Visual Studio Code (VS Code)
هو محرر أكواد مجاني وقوي جدًا، ومثالي للمبتدئين والمحترفين. يوفر ميزات
مثل تمييز الأخطاء تلقائيًا، وإكمال الأكواد، ويدعم العديد من اللغات.
- خيارات أخرى: يمكنك استخدام PyCharm، وهو بيئة تطوير متكاملة (IDE)
مصممة خصيصًا لبايثون، لكنه قد يكون أكثر تعقيدًا قليلاً.
3. مكتبات بايثون (Python Libraries)
هذه هي الأدوات البرمجية التي ستضيفها إلى بايثون لتمكينها من القيام بمهام معينة.
للذكاء الاصطناعي والمحادثة :
- chatterbot: المكتبة الرئيسية التي قمنا بشرحها لبرمجة الروبوت.
- chatterbot_corpus: المكتبة التي تحتوي على بيانات التدريب الجاهزة.
* لإنشاء الواجهة الرسومية (GUI):
- Tkinter: إذا أردت بناء واجهة بسيطة بأزرار ومربعات نصوص، فهذه المكتبة
هي الخيار الأسهل. وهي مدمجة بالفعل مع بايثون، لذا لا تحتاج إلى تثبيتها.
- PyQt أو PySide: إذا أردت بناء واجهة احترافية ومعقدة أكثر، فهذه المكتبات هي
الخيار الأفضل، لكنها تتطلب بعض الخبرة.
باختصار، ستبدأ بتثبيت Python و VS Code، ثم ستقوم بتثبيت المكتبات المطلوبة (chatterbot).
خطوات برمجة تطبيق لإنشاء روبوت محادثة باستخدام بايثون و ChatterBot
1. تهيئة بيئة العمل وتثبيت المكتبات
قبل البدء في كتابة الأكواد، يجب أن تتأكد من أن لديك برنامج Python مثبتًا على جهازك.
بعد ذلك، ستحتاج إلى تثبيت مكتبتي ChatterBot و ChatterBot Corpus.
Corpus هي مجموعة من البيانات الجاهزة التي تستخدم لتدريب الروبوت على مواضيع مختلفة.
افتح موجه الأوامر (Command Prompt) أو الطرفية (Terminal) واكتب الأوامر التالية :
pip install chatterbot
pip install chatterbot_corpus
--
2. الكود الأساسي: بناء المنطق وتدريب الروبوت
الآن، لنبدأ بكتابة الكود الأساسي. هذا الكود سيقوم بإنشاء الروبوت،
وتدريبه على بعض البيانات، ثم جعله جاهزًا للمحادثة.
* الشرح التفصيلي للبرنامج :
- السطر 1: نستورد الفئات الرئيسية ChatBot و Trainer من مكتبة ChatterBot.
- السطر 2-3: نستورد ChatterBotCorpusTrainer و ListTrainer، وهما
نوعان من المدربين. الأول يستخدم بيانات جاهزة، والثاني يستخدم قائمة نصية.
- السطر 5: نقوم بإنشاء كائن (Object) جديد من فئة ChatBot ونعطيه اسمًا (Faris).
كما نحدد أنه سيستخدم قاعدة بيانات SQLite لحفظ كل المحادثات والبيانات التي يتعلمها.
- السطر 7-8: ننشئ كائنًا من ChatterBotCorpusTrainer لتدريب الروبوت.
- السطر 10: هذا هو سطر التدريب الأهم. نستخدم .train() لتدريب الروبوت على البيانات الجاهزة. chatterbot.corpus.arabic تعني أننا ندربه على اللغة العربية :
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer, ListTrainer
# إنشاء روبوت محادثة باسم "فارس"
chatbot = ChatBot('Faris',
database_uri='sqlite:///db.sqlite3')
# إنشاء مدرب للروبوت باستخدام البيانات الجاهزة
trainer = ChatterBotCorpusTrainer(chatbot)
# تدريب الروبوت على مجموعة بيانات اللغة العربية
print("بدء تدريب الروبوت على اللغة العربية...")
trainer.train('chatterbot.corpus.arabic')
print("تم تدريب الروبوت بنجاح!")
--
3. الواجهة والأزرار (واجهة سطر الأوامر)
بما أن بناء واجهة رسومية كاملة (GUI) مثل الأزرار يحتاج إلى كود
إضافي ومكتبات أخرى (مثل Tkinter أو PyQT)، فإن أفضل طريقة للبدء
هي إنشاء واجهة بسيطة في سطر الأوامر (Command Line Interface).
هذه الواجهة تسمح لك بالتفاعل مع الروبوت مباشرةً عن طريق الكتابة.
* شرح الأكواد:
- نقوم بإنشاء حلقة while True لجعل البرنامج يعمل بشكل مستمر.
- داخل الحلقة، نطلب من المستخدم إدخال رسالته (input(...)).
- نستخدم chatbot.get_response(user_input) للحصول على رد الروبوت.
- نطبع الرد
إذا كتب المستخدم "اخرج"، تنتهي الحلقة ويتوقف البرنامج :
# --- الواجهة وتجربة الروبوت ---
print("\nمرحباً! أنا روبوت فارس. يمكنك التحدث معي. اكتب 'اخرج' للخروج.")
while True:
try:
user_input = input("أنت: ")
if user_input.lower() == 'اخرج':
print("الروبوت: إلى اللقاء!")
break
response = chatbot.get_response(user_input)
print("الروبوت:", response)
except(KeyboardInterrupt, EOFError, SystemExit):
break
--
4. حفظ وتعلم الروبوت
- أهم ميزة في ChatterBot هي قدرته على التعلم من المحادثات الجديدة وحفظها.
- عندما يقوم الروبوت بالرد على سؤال ما، يقوم تلقائيًا بحفظ السؤال والرد في قاعدة البيانات (db.sqlite3).
- في كل مرة تُشغل فيها البرنامج، يتعلم الروبوت من المحادثات السابقة.
- إذا أردت تدريب الروبوت على بيانات خاصة بك، يمكنك استخدام ListTrainer كما يلي:
# تدريب إضافي باستخدام قائمة من البيانات
list_trainer = ListTrainer(chatbot)
list_trainer.train([
'كيف حالك؟',
'أنا بخير، شكراً لك.',
'هل يمكنك مساعدتي؟',
'بالتأكيد، ما هو سؤالك؟'
])
--
5. الانتقال إلى واجهة رسومية (GUI) ونشر التطبيق
الواجهة الرسومية (الأزرار): لإنشاء واجهة رسومية تحتوي على مربعات نصوص وأزرار،
ستحتاج إلى استخدام مكتبة إضافية مثل Tkinter (المدمجة في بايثون) أو PyQt.
في هذه الواجهة، ستقوم بربط زر "إرسال" (Send) بدالة تقوم بإرسال النص إلى الروبوت
وعرض الرد في مربع النص الخاص بالرد. المنطق الأساسي للروبوت سيبقى كما هو.
مثال (فكرة): عند الضغط على زر، يتم استدعاء دالة get_response ووضع نتيجة الرد في مربع نص.
نشر التطبيق: لنشر التطبيق وجعله متاحًا للجميع، تحتاج إلى تحويله إلى تطبيق ويب.
يمكن القيام بذلك باستخدام أطر عمل (Frameworks) مثل Flask أو Django.
تقوم هذه الأطر بربط كود بايثون الخاص بالروبوت بواجهة ويب، ثم يمكنك
استضافة التطبيق على منصات مثل Heroku أو PythonAnywhere ليصبح متاحًا على الإنترنت.
الخلاصة:
بواسطة بايثون ومكتبة ChatterBot، يمكنك بسهولة إنشاء روبوت محادثة بسيط وفعال.
الروبوت الذي قمنا ببرمجته في هذا المقال هو الأساس الذي يمكنك البناء عليه،
وإضافة المزيد من البيانات والوظائف لجعله أكثر ذكاءً.