طريقة بناء بوت ذكي متعدد الخدمات باستخدام Python وOpenAI

في هذا المقال الشامل سنتعلم خطوة بخطوة كيف نبني بوت ذكي متعدد الخدمات باستخدام لغة Python وواجهة برمجة التطبيقات OpenAI.
مستخدم يتفاعل مع بوت ذكي باستخدام Python


مع تطور الذكاء الاصطناعي، أصبح من السهل بناء بوتات ذكية تقوم بأدوار متعددة مثل الدردشة، توليد استعلامات SQL، تلخيص البيانات، وأكثر.

🔍 ملاحظة: هذا المقال موجه للمطورين أو المهتمين الذين لديهم معرفة أساسية بلغة Python، وفهم عام لكيفية عمل واجهات API. لا يشترط أن تكون خبيرًا، لكن يُفضل أن تكون مرتاحًا في التعامل مع الكود البرمجي وتنفيذ الأوامر في الطرفية.

1. المتطلبات الأساسية

  • حساب على منصة OpenAI للحصول على مفتاح API.
  • تثبيت Python 3.8 أو أحدث.
  • المكتبات المطلوبة: openai و uuid و fastapi و gradio (اختيارية لواجهة الويب).

لتثبيت المكتبات المطلوبة، شغّل هذا الأمر في الطرفية:

pip install openai uuid fastapi uvicorn gradio

الوصف: هذا الأمر يقوم بتثبيت الحزم التي سنحتاجها لبناء البوت وتشغيله سواء من الطرفية أو كواجهة ويب.

2. إدارة الجلسات المتعددة

import openai

import uuid

openai.api_key = "ضع مفتاح API هنا"

sessions = {}

def create_session():

    sid = str(uuid.uuid4())

    sessions[sid] = [

        {"role": "system", "content": "أنت بوت مساعد ذكي متعدد الخدمات."}

    ]

    return sid

الوصف: هذا الجزء من الكود ينشئ جلسة جديدة باستخدام معرف فريد (UUID) ويخزن رسالة تمهيدية في قاموس الجلسات. يسمح هذا بإدارة جلسات مختلفة لمستخدمين مختلفين.

3. إرسال الرسائل والحفاظ على السياق

def send_message(session_id, user_msg):

    chat = sessions.get(session_id)

    if not chat:

        raise ValueError("جلسة غير موجودة.")

    chat.append({"role": "user", "content": user_msg})

    response = openai.ChatCompletion.create(

        model="gpt-3.5-turbo",

        messages=chat

    )

    bot_msg = response.choices[0].message.content

    chat.append({"role": "assistant", "content": bot_msg})

    return bot_msg

الوصف: هذه الدالة ترسل رسالة من المستخدم إلى البوت وتحصل على الرد باستخدام نموذج OpenAI، ثم تضيف كل من الرسالة والرد إلى الجلسة لحفظ السياق.

4. دعم خدمات متعددة داخل البوت

def handle_request(session_id, user_msg):

    prompt = user_msg.lower()

    if "sql" in prompt or "table" in prompt:

        sql_response = openai.ChatCompletion.create(

            model="gpt-3.5-turbo",

            messages=sessions[session_id] + [{"role": "user", "content": f"حوّل هذا إلى استعلام SQL: {user_msg}"}]

        )

        sql_code = sql_response.choices[0].message.content

        # تلخيص ناتج استعلام وهمي كمثال

        summary_response = openai.ChatCompletion.create(

            model="gpt-3.5-turbo",

            messages=[{"role": "system", "content": "أنت ملخص بيانات."},

                      {"role": "user", "content": "لخص الجدول التالي: [{'id':1,'name':'Ali'}, {'id':2,'name':'Sara'}]"}]

        )

        summary = summary_response.choices[0].message.content

        sessions[session_id].append({"role": "assistant", "content": sql_code})

        sessions[session_id].append({"role": "assistant", "content": summary})

        return sql_code, summary

    else:

        bot_msg = send_message(session_id, user_msg)

        return bot_msg, None

الوصف: هذه الدالة تتحقق من محتوى الرسالة. إذا احتوت على كلمات مثل "SQL"، فإنها تطلب من OpenAI تحويلها إلى استعلام SQL ثم تلخص النتيجة. إذا لم يكن كذلك، يتم التعامل معها كرسالة عادية للدردشة.

5. مثال بسيط لتشغيل البوت في سطر الأوامر (CLI)

if __name__ == "__main__":

    sid = create_session()

    print(f"معرّف الجلسة: {sid}")

    while True:

        user_input = input("أنت: ")

        if user_input.lower() in ("exit", "quit"):

            break

        response, summary = handle_request(sid, user_input)

        if summary:

            print("🔹 استعلام SQL:\n", response)

            print("🔹 ملخص:\n", summary)

        else:

            print("🤖 بوت:", response)

الوصف: هذا الكود يسمح لك باستخدام البوت من سطر الأوامر. يبدأ جلسة جديدة ويستقبل مدخلات من المستخدم ويرد عليها، ويمكنه التوقف عند كتابة "exit".

6. بناء واجهة ويب بسيطة (اختياري)

6.1 مثال باستخدام FastAPI:

from fastapi import FastAPI

from pydantic import BaseModel

app = FastAPI()

class Message(BaseModel):

    session_id: str

    message: str

@app.post("/chat")

async def chat_endpoint(data: Message):

    response, summary = handle_request(data.session_id, data.message)

    return {"response": response, "summary": summary}

الوصف: هذا الكود يستخدم FastAPI لبناء واجهة API يمكن من خلالها إرسال رسائل للبوت واستقبال الردود من خلال HTTP.

6.2 مثال باستخدام Gradio:

import gradio as gr

def gradio_chat(user_msg, sess=[""]):

    if not sess[0]:

        sess[0] = create_session()

    response, summary = handle_request(sess[0], user_msg)

    if summary:

        return f"SQL:\n{response}\n\nملخص:\n{summary}"

    else:

        return response

iface = gr.Interface(fn=gradio_chat, inputs="text", outputs="text")

iface.launch()

الوصف: هذا المثال يستخدم Gradio لإنشاء واجهة رسومية بسيطة على المتصفح تسمح للمستخدم بالتفاعل مع البوت بسهولة بدون الحاجة لسطر الأوامر.

7. نصائح وتحسينات مستقبلية

  • استخدام قواعد بيانات حقيقية مثل SQLite لتنفيذ الاستعلامات.
  • تخزين جلسات المستخدم في MongoDB أو Redis لتسهيل تتبع المحادثات.
  • دمج أدوات مثل LangChain لتوسيع إمكانيات البوت.
  • إضافة ميزات مثل الترجمة، تحليل النصوص، التوصيات الذكية.
  • تصميم واجهات مستخدم احترافية باستخدام React أو Vue مع FastAPI.
"الذكاء الاصطناعي هو المستقبل، وبناء بوتات ذكية هو خطوة مهمة نحو أتمتة الحياة اليومية."
— مطور الذكاء الاصطناعي

8. أخطاء شائعة ونصائح فعالة

  • نسيان system prompt في كل جلسة → مهّم للحفاظ على الاتساق.
  • الجلسات يتم مزجها عند الاستخدام المتزامن → استخدم Locks أو طوابير رسائل.
  • نفاد الحد الأقصى من tokens → حافظ على طول الرسائل أو استخدم تلخيص دوري.
  • عدم تأمين سرية مفتاحك → خزّنه كمتغير بيئة، لا ترسله علنًا.

خاتمة

في هذا المقال تعلمنا خطوة بخطوة كيفية بناء بوت ذكي متعدد الخدمات باستخدام Python وOpenAI، من إدارة الجلسات إلى تصميم واجهات الاستخدام. يمكنك الآن تخصيص البوت حسب احتياجاتك وتطويره ليشمل مهام وخدمات أكثر.

إذا أعجبك المقال، لا تتردد في مشاركته مع أصدقائك أو طرح أسئلتك في التعليقات.

📚 المراجع

  • OpenAI API Documentation – لتفاصيل استخدام واجهة GPT وطرق إنشاء محادثات متعددة.
  • Python Documentation – للمفاهيم الأساسية مثل إدارة الجلسات، التعامل مع المكتبات، إلخ.
  • FastAPI – لإنشاء API بسيطة وسريعة.
  • Gradio – لواجهة المستخدم الرسومية المباشرة لتجربة البوت.
  • SQLAlchemy (اختياري) – إذا رغبت في تنفيذ SQL حقيقي على قاعدة بيانات.
  • OpenAI Python Client – مستودع GitHub الرسمي لمكتبة OpenAI.

💡 إذا كنت مهتمًا بتوسيع معرفتك بشكل أعمق:
ندعوك لاستكشاف قسم تعلم البرمجة أو تقنيات وأساليب، حيث نقدم شروحات مبسطة، أمثلة عملية، ودروسًا متجددة لمساعدتك على تطوير مهاراتك البرمجية والتقنية.

إرسال تعليق

ارسل رأيك
© هاي اكس. All rights reserved. Premium By Raushan Design