بناء روبوت محادثة باستخدام Mixtral API من Mistral: دليل خطوة بخطوة

Share:
درس تقني
متوسط
⏱ قراءة لمدة ٣٠ دقيقة
© بوابة الذكاء الاصطناعي ٢٠٢٦-٠٥-٢٣

تعلم كيفية استغلال قوة API الرسمي من Mistral لإنشاء روبوت محادثة ذكي قادر على التعامل مع الاستفسارات المعقدة بسهولة.

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

  • Python ٣.٨ أو أعلى
  • الوصول إلى Mistral AI API (مطلوب مفتاح API من console.mistral.ai)
  • فهم متوسط لبرمجة Python

ما الذي سنبنيه

في هذا الدرس، ستتعلم كيفية بناء روبوت محادثة متقدم باستخدام SDK الرسمي لـ Mistral AI بلغة Python. سيقوم هذا الروبوت بمعالجة استفسارات اللغة الطبيعية، وتقديم ردود متماسكة، والتعامل مع مواضيع المحادثة باستخدام أحدث نماذج Mistral.

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

الإعداد والتثبيت

لبدء العمل، قم بتثبيت SDK الرسمي لـ Mistral و`python-dotenv` لتكوين آمن.

pip install mistralai python-dotenv

قم بتخزين مفتاح API الخاص بك في ملف `.env` لضمان عدم تضمينه بشكل صريح في الكود.


    # .env file
    MISTRAL_API_KEY=your_api_key_here
  

الخطوة ١: إعداد عميل API

سنستخدم فئة `Mistral` من SDK الرسمي، وهي الطريقة الموصى بها للتفاعل مع نقاط النهاية الخاصة بـ Mistral.


import os
from mistralai import Mistral
from dotenv import load_dotenv

load_dotenv()

class ChatbotClient:
    def __init__(self):
        # Client automatically reads MISTRAL_API_KEY from environment variables
        self.client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))
        self.model = "mistral-small-latest"

    def send_query(self, query):
        response = self.client.chat.complete(
            model=self.model,
            messages=[{"role": "user", "content": query}]
        )
        return response.choices[0].message.content
  

الخطوة ٢: بناء واجهة روبوت المحادثة

تسمح هذه الواجهة التفاعلية عبر سطر الأوامر بالتفاعل المستمر مع النموذج.


def main():
    client = ChatbotClient()
    print("Welcome to the Mistral Chatbot! Type 'exit' to quit.")
    
    while True:
        user_input = input("You: ")
        if user_input.lower() == 'exit':
            print("Goodbye!")
            break
        
        try:
            response = client.send_query(user_input)
            print(f"Bot: {response}")
        except Exception as e:
            print(f"Error: {e}")
        
if __name__ == '__main__':
    main()
  

الخطوة ٣: التعزيز بالوعي السياقي

لتمكين المحادثات متعددة الأدوار، يجب عليك الاحتفاظ بقائمة من الرسائل التي تتضمن تاريخ المحادثة.


class EnhancedChatbotClient(ChatbotClient):
    def __init__(self):
        super().__init__()
        self.history = [{"role": "system", "content": "You are a helpful assistant."}]

    def send_query_with_context(self, query):
        self.history.append({"role": "user", "content": query})
        
        response = self.client.chat.complete(
            model=self.model,
            messages=self.history
        )
        
        answer = response.choices[0].message.content
        self.history.append({"role": "assistant", "content": answer})
        return answer
  
⚠️ نصيحة الخبراء: استخدم دائمًا بنية الرسائل الرسمية لـ SDK. يعد تحديد الأدوار بشكل صحيح (“system”, “user”, “assistant”) أمرًا حيويًا للحفاظ على السياق المتماسك.

اختبار التنفيذ الخاص بك

قم بتشغيل البرنامج النصي وتفاعل مع روبوت المحادثة للتحقق من ذاكرة السياق.


# Run the script
python chatbot.py
  

ما الذي يمكن بناؤه بعد ذلك

  • دمج روبوت المحادثة في تطبيق ويب باستخدام Flask أو Django.
  • تنفيذ ردود متدفقة باستخدام client.chat.stream() للحصول على تأثير الكتابة في الوقت الفعلي.
  • التجربة مع mistral-medium-latest أو mistral-large-latest لمهام التفكير الأكثر تعقيدًا.

Share:

هل كان هذا الشرح مفيداً؟