متوسط
⏱ ٤٥ دقيقة قراءة
© بوابة الذكاء الاصطناعي ٢٠٢٦-٠٤-١١
تعلم كيفية دمج Mistral وClaude وChatGPT APIs لبناء تطبيق دردشة قوي يعتمد على الذكاء الاصطناعي ويستفيد من نقاط القوة لكل نموذج.
المتطلبات الأساسية
- Python ٣.٨ أو أعلى
- مفاتيح API لـ Mistral وClaude وChatGPT
- مهارات برمجة متوسطة
ما الذي نبنيه
في هذا الدرس، سنقوم ببناء تطبيق دردشة متطور يدمج نماذج ذكاء اصطناعي متعددة: Mistral وClaude وChatGPT. سيتولى كل نموذج أنواع مختلفة من الاستفسارات، مما يسمح لنا بالاستفادة من قدراتهم الفريدة لتحقيق الأداء الأمثل. والنتيجة النهائية هي واجهة دردشة سلسة حيث يمكن للمستخدمين التفاعل مع النموذج الأنسب لنوع استفسارهم.
سيقوم التطبيق بتوجيه الأسئلة بذكاء إلى النموذج المناسب بناءً على معايير محددة مسبقًا، مثل تعقيد الاستفسار أو خصوصية المجال. هذا النهج لا يعزز دقة الاستجابة فحسب، بل يحقق أيضًا تحسينًا في استخدام الموارد من خلال تفويض المهام إلى النموذج الأكثر كفاءة.
الإعداد والتثبيت
الخطوة الأولى هي إعداد بيئة التطوير الخاصة بك. سنستخدم Python كلغة البرمجة الأساسية، وستحتاج إلى تثبيت عدة حزم للتفاعل مع APIs.
pip install requests flaskبعد ذلك، قم بإنشاء ملف .env لتخزين مفاتيح API الخاصة بك بأمان. يجب أن يتضمن هذا الملف المتغيرات التالية:
API_KEY_MISTRAL=your_mistral_api_key
API_KEY_CLAUDE=your_claude_api_key
API_KEY_CHATGPT=your_chatgpt_api_keyالخطوة ١: إعداد خادم Flask
سنستخدم Flask لإنشاء خادم ويب بسيط للتعامل مع طلبات الدردشة الواردة. سيعمل هذا الخادم كواجهة بين المستخدم ونماذج الذكاء الاصطناعي.
from flask import Flask, request, jsonify
import os
from dotenv import load_dotenvload_dotenv()
app = Flask(__name__)
@app.route('/chat', methods=['POST'])
def chat():
data = request.json
user_query = data.get("query")
model_choice = determine_model(user_query)
response = get_response_from_model(model_choice, user_query)
return jsonify({"response": response})
def determine_model(query):
if "complex" in query:
return "mistral"
elif "creative" in query:
return "claude"
else:
return "chatgpt"
def get_response_from_model(model, query):
if model == "mistral":
return query_mistral(query)
elif model == "claude":
return query_claude(query)
else:
return query_chatgpt(query)
if __name__ == '__main__':
app.run(debug=True)
يقوم هذا الكود بإعداد خادم Flask أساسي بنقطة نهاية واحدة /chat. يحدد الخادم النموذج الذي سيتم استخدامه بناءً على محتوى الاستفسار ويسترجع استجابة من النموذج المختار.
الخطوة ٢: تنفيذ استدعاءات API
الآن، نحتاج إلى تنفيذ استدعاءات API لكل من نماذج الذكاء الاصطناعي. يتضمن ذلك إرسال استفسار المستخدم إلى API المناسب وإرجاع الاستجابة المولدة.
import requestsdef query_mistral(query):
api_key = os.getenv("API_KEY_MISTRAL")
response = requests.post("https://api.mistral.ai/v1/query",
headers={"Authorization": f"Bearer {api_key}"},
json={"query": query})
return response.json().get("result")
def query_claude(query):
api_key = os.getenv("API_KEY_CLAUDE")
response = requests.post("https://api.claude.ai/v1/query",
headers={"Authorization": f"Bearer {api_key}"},
json={"query": query})
return response.json().get("result")
def query_chatgpt(query):
api_key = os.getenv("API_KEY_CHATGPT")
response = requests.post("https://api.chatgpt.com/v1/query",
headers={"Authorization": f"Bearer {api_key}"},
json={"query": query})
return response.json().get("result")
ترسل كل وظيفة طلب POST إلى نقطة نهاية API المعنية مع استفسار المستخدم. يتم تحليل الاستجابة لاستخراج النتيجة، والتي يتم إرجاعها إلى الوظيفة المستدعية.
الخطوة ٣: منطق التوجيه لاختيار النموذج
لتحسين مرونة تطبيقنا، سنقوم بتنفيذ منطق توجيه أكثر تطورًا يأخذ في الاعتبار عوامل مختلفة مثل نوع الاستفسار ونقاط قوة النموذج.
def determine_model(query):
if "complex" in query or len(query.split()) > 20:
return "mistral"
elif "creative" in query or "story" in query:
return "claude"
else:
return "chatgpt"
تقوم هذه الوظيفة بتقييم تعقيد وطبيعة الاستفسار لتحديد النموذج الأنسب. من خلال تحليل طول الاستفسار والكلمات الرئيسية المحددة، يمكن للوظيفة مطابقة الاستفسار بشكل أفضل مع قدرات النموذج.
.env الخاص بك. خطأ شائع هو استخدام أسماء متغيرات غير صحيحة أو فقدان استيراد حزمة dotenv، مما سيؤدي إلى أخطاء في المصادقة.اختبار تنفيذك
للتحقق من وظيفة تطبيق الدردشة الخاص بك، اختبره مع استفسارات متنوعة للتأكد من أن كل نموذج يتم استدعاؤه بشكل صحيح وأن الاستجابات دقيقة.
curl -X POST http://localhost:5000/chat
-H "Content-Type: application/json"
-d '{"query": "Tell me a creative story about a dragon"}'
يجب أن تتلقى استجابة إبداعية من نموذج Claude. وبالمثل، اختبر مع استفسارات معقدة لترى ما إذا كان Mistral يتعامل معها بفعالية.
ما الذي تبنيه بعد ذلك
- تعزيز منطق التوجيه باستخدام التعلم الآلي للتعلم الديناميكي وتحسين اختيار النموذج بمرور الوقت.
- دمج واجهة أمامية باستخدام React لتوفير تجربة دردشة سهلة الاستخدام.
- توسيع التطبيق لدعم نماذج ذكاء اصطناعي إضافية ومقارنة أدائها في الوقت الحقيقي.