متوسط
⏱ قراءة لمدة ٣٠ دقيقة
© بوابة الذكاء الاصطناعي ٢٠٢٦-٠٥-٢٣
تعلم كيفية استغلال قوة 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
اختبار التنفيذ الخاص بك
قم بتشغيل البرنامج النصي وتفاعل مع روبوت المحادثة للتحقق من ذاكرة السياق.
# Run the script
python chatbot.py
ما الذي يمكن بناؤه بعد ذلك
- دمج روبوت المحادثة في تطبيق ويب باستخدام Flask أو Django.
- تنفيذ ردود متدفقة باستخدام
client.chat.stream()للحصول على تأثير الكتابة في الوقت الفعلي. - التجربة مع
mistral-medium-latestأوmistral-large-latestلمهام التفكير الأكثر تعقيدًا.