بناء روبوت محادثة مدعوم بالذكاء الاصطناعي
تعرف على كيفية بناء روبوت محادثة مدعوم بالذكاء الاصطناعي باستخدام ChatterBot لحل المشكلات الرياضية من خلال فهم اللغة الطبيعية.
سنغطي ما يلي...
في الدرس السابق، أنشأنا روبوت دردشة بسيطًا يتبع قواعد محددة مسبقًا ليعطينا الوقت الحالي في مدن مختلفة. كان الأمر أشبه بتعليم طفل صغير الإجابة على أسئلة محددة: "ما هو الوقت في طوكيو؟" يُعطي استجابة دقيقة، ولكن إذا سألته سؤالًا مختلفًا قليلًا، مثل "ما هو الوقت في باريس؟" (مدينة لم نُضِفها)، فسيُصاب بالارتباك. هذا أعطانا لمحة عن روبوتات الدردشة القائمة على القواعد. كانت صارمة، وسهلة التنبؤ، ومناسبة للمهام المباشرة. ولكن الآن، حان الوقت للمضي قدمًا.
ماذا لو أردتَ روبوت دردشة لمساعدتك في أمر أكثر ديناميكية، كالرياضيات؟ يُمكننا بناء روبوت آخر قائم على القواعد لحسابات مُحددة مثل "ما حاصل جمع ٢ + ٢؟". ولكن كم قاعدة نحتاج لتغطية جميع مسائل الرياضيات المُحتملة ؟ سيكون الأمر أشبه بكتابة تعليمات مُنفصلة لكل حبة رمل على شاطئ - وهو أمر غير عملي. إذا حاولتَ إنشاء روبوت قائم على القواعد لجميع أسئلة الحساب الأساسية المُحتملة حتى ١٠٠، فستحتاج إلى تغطية أكثر من ٤٠,٠٠٠ تركيبة فريدة! هذا لا يُراعي حتى الاختلافات في كيفية صياغة الأسئلة في اللغة الطبيعية، مثل "ما مجموع ١٥ و٢٠؟" مقابل "أجمع ١٥ و٢٠ بالنسبة لي".
هنا يأتي دور المحولات المنطقية. تخيلها كـ"أوراق غش" مدمجة تُزود روبوت الدردشة الخاص بنا بمهارات متقدمة دون الحاجة إلى برمجة جميع السيناريوهات المحتملة. لتوضيح ذلك، سنستخدم روبوت دردشة يعمل كمساعد بارع في الرياضيات: الآلة الحاسبة بالذكاء الاصطناعي.
لماذا نفعل هذا؟
إذا كان روبوت الساعة العالمية دراجة هوائية - ثابتة وموثوقة، لكنها محدودة السرعة - فإن حاسبة الذكاء الاصطناعي هي دراجة نارية أنيقة. فهي ليست أسرع فحسب، بل تتعامل بسهولة مع منحنيات إدخال الديناميكي، مما يمنحك تجربة سلسة عبر الاستعلامات المعقدة. مع حاسبة الذكاء الاصطناعي، ستتعلم ما يلي:
طريقة عمل المحولات المنطقية: وهي عبارة عن أدوات مثبتة مسبقًا تجعل الروبوت قادرًا على أداء مهام متقدمة.
التعامل مع إدخال اللغة الطبيعية: يمكن لآلة حاسبة الذكاء الاصطناعي تفسير أسئلة الرياضيات باللغة الإنجليزية البسيطة بدلاً من القواعد الصارمة.
تقييم الاستعلامات الديناميكية: لا يحتاج إلى تعليمات محددة لكل إدخال- فهو يفهم الأنماط العامة، وذلك بفضل مهاراته في الرياضيات.
تخيّل روبوت المحادثة كمساعد ودود يجيب على سؤال حواري مثل "ما ناتج قسمة ٢٥ على ٥؟" ويجيب فورًا بـ "٥". يمكنك طرح أسئلة رياضية متنوعة عليه، مثل:
ما هو حاصل جمع ٥٠ ناقص ٢٠؟ سيتعرف الروبوت على "ناقص" كعملية طرح، ويطرح ٢٠ من ٥٠، ويعطيك الإجابة: ٣٠.
"ما هو حاصل ضرب 10 في 15؟" يحدد الروبوت "الأوقات" على أنها عملية ضرب، ويحسب النتيجة (150)، ويستجيب محادثة.
ما هو حاصل قسمة ١٠٠ على ٢٥؟ يُفسّر "القسمة على" على أنها قسمة، ويحسب الحاصل (٤.٠)، ويعطيك الإجابة.
إليكم الجزء الأفضل: تستخدم الآلة الحاسبة الذكية مُحوِّلًا منطقيًا لمعالجة وتقييم التعبيرات الرياضية ديناميكيًا. لستَ مُضطرًا لتعليمها جميع الأسئلة المُحتملة، فهي ذكية بما يكفي لتمييز الأنماط وحل مجموعة واسعة من المسائل الرياضية، طالما أنها تقع ضمن إمكانياتها.
لكن كأي مساعد، له حدود. قد لا يعرف كيف يجيب إذا سألتَ سؤالًا معقدًا للغاية، مثل "ما هو العدد 2 مرفوعًا للقوة 56؟". مع ذلك، فهو حل سريع وفعال للمسائل الرياضية اليومية، ما يجعل التعلم ممتعًا وتفاعليًا. إنه محادثة وذكي وجاهز للمساعدة، مما يجعله مثاليًا لاستكشاف المستوى التالي من وظائف روبوت الدردشة.
حقيقة طريفة: صُممت أقدم الحواسيب، مثل جهاز ENIAC في أربعينيات القرن العشرين، في المقام الأول لإجراء حسابات رياضية معقدة لمهام مثل رسم مسارات المدفعية. لذا، فإن استخدام الذكاء الاصطناعي لحل المسائل الرياضية يُعيد إلى الأذهان أصول الحوسبة!
كيفية إنشاء روبوت محادثة بالذكاء الاصطناعي
لنُطوّر مهاراتنا في بناء روبوتات الدردشة باستخدام ChatterBot، وهي مكتبة فعّالة لإنشاء الذكاء الاصطناعي التفاعلي. يُمكننا إضافة ميزات متقدمة، مثل التقييم الرياضي، دون الخوض في تعقيدات تقنية مُعقدة، وذلك باستخدام بضعة أسطر من التعليمات البرمجية.
في حاسبة الذكاء الاصطناعي الخاصة بنا،
إليك السبب وراء استخدامنا لـChatterBot:
إنه يوضح كيفية بناء روبوتات الدردشة الوظيفية مع الحد الأدنى من الإعداد.
إنه مناسب للمبتدئين مع توفير لمحة عن القدرات المتقدمة.
إنه يدعم محولات المنطق مثل MathematicalEvaluation، التي تدعم الآلة الحاسبة الخاصة بنا.
ملاحظة: على الرغم من أن ChatterBot لا يخضع لصيانة دورية، إلا أنه لا يزال أداة رائعة لتعلم أساسيات روبوتات الدردشة واستكشاف المفاهيم الأساسية. بالإضافة إلى ذلك، لن تقلق بشأن الإعداد المعقد أو التبعيات - في Educative، نتولى كل شيء نيابةً عنك. ما هو تركيزك؟ التعلم وبناء مشاريع رائعة.
from chatterbot import ChatBot
# naming the ChatBot calculator
# using mathematical evaluation logic
# the calculator AI will not learn with the user input
Bot = ChatBot(name = 'Calculator',
read_only = True,
logic_adapters = ["chatterbot.logic.MathematicalEvaluation"],
storage_adapter = "chatterbot.storage.SQLStorageAdapter")
# clear the screen and start the calculator
print('\033c')
print("Hello, I am a calculator. How may I help you?")
while (True):
# take the input from the user
user_input = input("me: ")
# check if the user has typed quit to exit the prgram
if user_input.lower() == 'quit':
print("Exiting")
break
# otherwise, evaluate the user input
# print invalid input if the AI is unable to comprehend the input
try:
response = Bot.get_response(user_input)
print("Calculator:", response)
except:
print("Calculator: Please enter valid input.")في الكود أعلاه:
السطر 1: استيراد
ChatBotالصف منchatterbotالمكتبة. هذا هو أساس روبوت المحادثة.ChatBotتوفر الفئة الإطار لإنشاء الروبوت وتكوينه، بما في ذلك تعيين اسمه ومنطقه وتخزينه.الأسطر 6-9: قم بتهيئة برنامج المحادثة الآلي بالاسم
Calculator، باستخدامMathematicalEvaluationمحول منطقي للعمليات الرياضية وSQLStorageAdapterللتخزين. تم ضبط الروبوت علىread_onlyللحفاظ على سلوك ثابت.السطرين 13-14: قم بمسح المحطة وترحيب بالمستخدم برسالة تعريفية.
الأسطر 15-17: ابدأ حلقة لا نهائية لقبول إدخال المستخدم بشكل مستمر حتى الخروج صراحةً.
الأسطر 20-21: تحقق مما إذا كان المستخدم يكتب
"quit"إذا كان الأمر كذلك، قم بإنهاء الحلقة وطباعة رسالة الخروج.الأسطر 26-28: مرر إدخال المستخدم إلى الروبوت
get_responseطريقة لمعالجة الإجابة وحسابها، ثم عرض النتيجة.MathematicalEvaluationيقوم المحول المنطقي بتفسير الاستعلامات الرياضية، وإجراء العمليات الحسابية، وإرجاع النتيجة.السطرين 29–30: تعامل مع إدخال غير الصحيح بسلاسة عن طريق مطالبة المستخدم بمحاولة مرة أخرى.
يمكننا أن نرى أنMathematicalEvaluation المحول هو المنطق الأساسي الذي يُشغّل حاسبة الذكاء الاصطناعي. إنه العقل المدبر وراء قدرة روبوت المحادثة على معالجة الاستعلامات الرياضية وحلها ديناميكيًا. بخلاف الأنظمة البسيطة القائمة على القواعد، يستخدم هذا المحول تحليل اللغة الطبيعية والحساب الديناميكي لتفسير إدخال المستخدم، واستخراج التعبيرات الرياضية، وحساب نتائج دقيقة. لنتعمق في الكود ونستكشف كيف يُحوّل هذا المحول استفسارات المستخدم إلى استجابات ذكية.
يمكننا رؤية الكود ونستنتج أن المحول يُمكّن وظائف الذكاء الاصطناعي من خلال استخدام التحليل الديناميكي، واتخاذ القرارات، والفهم السياقي. ويستخدمmathparse مكتبة لاستخراج التعبيرات الرياضية من إدخال اللغة الطبيعية. هذه خطوة متقدمة عن الأنظمة القائمة على القواعد، لأن المحول لا يحتاج إلى تعليمات صريحة لكل سيناريو، بل يُعمم من الأنماط في إدخال.
كان فهم اللغة الطبيعية من أكبر التحديات في الذكاء الاصطناعي التقليدي. على سبيل المثال، يحتاج روبوت المحادثة إلى إدراك أن عبارتي "ما حاصل ضرب 5 في 2؟" و"ما حاصل قسمة 5 على 2؟" تعنيان الشيء نفسه - وهو أمرٌ يعتبره البشر أمرًا مسلمًا به!