بناء صندوق محادثة Chat Box
سنبدأ بفهم أجزاء صندوق المحادثة وكيف تنتقل الرسالة من المستخدم إلى البرنامج، ثم تعود الإجابة لتظهر في الصفحة.
صندوق المحادثة حلقة وصل بين المستخدم والذكاء الاصطناعي
يكتب المستخدم رسالة في الواجهة، ثم يرسلها البرنامج إلى خادم بايثون. يستقبل الخادم الرسالة ويرسلها إلى نموذج الذكاء الاصطناعي، وبعد ذلك يعيد الإجابة إلى الواجهة لتظهر للمستخدم.
User -> Chat Box -> Python Server -> AI Model
AI Model -> Python Server -> Chat Box -> User
ما الذي سنبنيه؟
الواجهة HTML
حقل يكتب فيه المستخدم رسالته، وزر للإرسال، ومنطقة تعرض الرسائل.
التنسيق CSS
نستخدمه لترتيب الصندوق وتمييز رسائل المستخدم عن رسائل المساعد.
التفاعل JavaScript
يقرأ الرسالة ويرسلها إلى الخادم، ثم يضيف الإجابة إلى المحادثة دون إعادة تحميل الصفحة.
الخادم Python
يستقبل الطلب ويتواصل مع واجهة نموذج الذكاء الاصطناعي بطريقة آمنة.
أنشئ صندوق المحادثة باستخدام HTML
نبدأ بعناصر بسيطة: مساحة لعرض الرسائل، وحقل لكتابة رسالة جديدة، وزر للإرسال. لا يوجد ذكاء اصطناعي هنا بعد؛ نحن نبني المكان الذي ستظهر فيه المحادثة.
<div id="chat-box"></div>
<input id="user-input" type="text">
<button id="send-button">Send</button>
اجعل الزر يضيف رسالة
بعد ذلك نستخدم JavaScript لقراءة النص. عند ضغط المستخدم على الزر، ننشئ عنصراً جديداً ونضيفه إلى مساحة المحادثة. هذه الخطوة تجعل الصندوق تفاعلياً حتى قبل الاتصال بالذكاء الاصطناعي.
const input = document.querySelector('#user-input');
const chatBox = document.querySelector('#chat-box');
function addMessage(text) {
const message = document.createElement('p');
message.textContent = text;
chatBox.appendChild(message);
}
ثبّت Flask لتشغيل خادم Python
نحتاج إلى إطار عمل Flask حتى نستطيع إنشاء خادم يستقبل رسائل صندوق المحادثة. Flask مكتبة Python خفيفة، وتوفر لنا المسارات مثل /chat التي تتصل بها الواجهة.
افتح موجّه الأوامر أو الطرفية داخل مجلد المشروع، ثم نفّذ الأمر التالي:
python -m pip install flask
بعد انتهاء التثبيت، تحقق من أن Flask أصبح متاحاً في نفس بيئة Python:
python -c "import flask; print(flask.__version__)"
python غير معروف، فتأكد من تثبيت Python وإضافته إلى PATH، أو استخدم الأمر py -m pip install flask في Windows.
أرسل الرسالة إلى Python
لا نضع مفتاح API في JavaScript داخل المتصفح. بدلاً من ذلك، ترسل الواجهة الرسالة إلى خادم Python، والخادم وحده يتواصل مع مزود الذكاء الاصطناعي ويحمي المفتاح السري.
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.post('/chat')
def chat():
message = request.json['message']
return jsonify({'reply': f'You said: {message}'})
استبدل الإجابة التجريبية بإجابة ذكية
بعد التأكد من أن الواجهة والخادم يعملان، نضيف استدعاء نموذج الذكاء الاصطناعي داخل دالة chat(). نبني المشروع على مراحل حتى نعرف مكان المشكلة إذا حدث خطأ، ولا نخلط بين واجهة المحادثة واتصال API.
اختبر الواجهة
تأكد أن الرسالة تظهر في الصندوق عند الضغط على زر الإرسال.
اختبر الخادم
أرسل طلباً تجريبياً وتأكد أن الخادم يعيد JSON صحيحاً.
أضف النموذج
ضع مفتاح API في متغير بيئي، وليس داخل ملفات الواجهة.
اعرض الإجابة
أعد الإجابة إلى JavaScript ثم أضفها كرسالة للمساعد.
جرّب شكل الرسالة
اكتب اسمك، وستظهر رسالة ترحيب كما ستظهر الرسائل داخل صندوق المحادثة لاحقاً.
مرحباً، صديق AIRealm! أنا مساعدك الذكي.
فكّر في مسار الرسالة
رتّب المراحل التالية: الخادم، المستخدم، نموذج الذكاء الاصطناعي، وصندوق المحادثة.
User message
Chat Box
Python server
AI model
Assistant reply