كيفية استخدام MCP مع واجهة برمجة تطبيقات OpenAI باستخدام Dolphin-MCP

💡مهتم بأحدث الاتجاهات في الذكاء الاصطناعي؟ إذن، لا يمكنك أن تفوت Anakin AI! Anakin AI هو منصة شاملة لجميع أتمتة سير العمل الخاصة بك، أنشئ تطبيق ذكاء اصطناعي قوي باستخدام أداة إنشاء التطبيقات بدون كود سهلة الاستخدام، مع Deepseek و OpenAI's o3-mini-high و Claude 3.7 Sonnet و FLUX و

Build APIs Faster & Together in Apidog

كيفية استخدام MCP مع واجهة برمجة تطبيقات OpenAI باستخدام Dolphin-MCP

Start for free
Inhalte
💡
مهتم بأحدث الاتجاهات في الذكاء الاصطناعي؟

إذن، لا يمكنك أن تفوت Anakin AI!

Anakin AI هو منصة شاملة لجميع أتمتة سير العمل الخاصة بك، أنشئ تطبيق ذكاء اصطناعي قوي باستخدام أداة إنشاء التطبيقات بدون كود سهلة الاستخدام، مع Deepseek و OpenAI's o3-mini-high و Claude 3.7 Sonnet و FLUX و Minimax Video و Hunyuan...

قم ببناء تطبيق الذكاء الاصطناعي الذي تحلم به في دقائق وليس أسابيع مع Anakin AI!
Anakin AI: منصتك الشاملة للذكاء الاصطناعي
Anakin AI: منصتك الشاملة للذكاء الاصطناعي

مقدمة

Dolphin-MCP هو تنفيذ مفتوح المصدر يمتد لبروتوكول نموذج السياق (MCP) لشركة Anthropic للعمل مع نماذج لغوية متنوعة تتجاوز Claude. ستقوم هذه التحguide الفني بإرشادك خلال إعداد واستخدام Dolphin-MCP بشكل خاص مع واجهة برمجة التطبيقات (API) الخاصة بـ OpenAI، مما يتيح لك الاستفادة من نماذج GPT من خلال بنية MCP.

نظرة عامة تقنية

Dolphin-MCP يعمل كطبقة ترجمة بين مواصفات MCP وواجهات برمجة التطبيقات المختلفة لـ LLM. بالنسبة للتكامل مع OpenAI، فهو:

  • يحول رسائل بروتوكول MCP إلى تنسيقات واجهة برمجة التطبيقات OpenAI
  • يتعامل مع اختلافات تعيين الرموز بين النماذج
  • يدير حالة المحادثة والتاريخ
  • يوفر ميزات تنفيذ الأدوات بطريقة غير تعتمد على النموذج

المتطلبات المسبقة

قبل البدء، تأكد من أن لديك:

  • Python 3.8+
  • pip (مدير الحزم)
  • مفتاح API الخاص بـ OpenAI
  • تثبيت Git
  • فهم أساسي لنماذج LLM ومفاهيم API

خطوات التثبيت

# استنساخ مستودع Dolphin-MCP
git clone https://github.com/cognitivecomputations/dolphin-mcp.git
cd dolphin-mcp

# إنشاء بيئة افتراضية
python -m venv venv
source venv/bin/activate  # على Windows: venv\Scripts\activate

# تثبيت التبعيات
pip install -r requirements.txt

# تثبيت الحزمة في وضع التطوير
pip install -e .

التكوين

1. إعداد متغيرات البيئة

قم بإنشاء ملف .env في جذر مشروعك:

OPENAI_API_KEY=sk-your-openai-api-key-here
MCP_MODEL=gpt-4-0125-preview
MCP_PROVIDER=openai

2. إنشاء ملف التكوين

قم بإنشاء ملف config.json:

{
  "provider": "openai",
  "model_settings": {
    "model": "gpt-4-0125-preview",
    "temperature": 0.7,
    "max_tokens": 2048
  },
  "api_config": {
    "api_key": "sk-your-openai-api-key-here",
    "base_url": "https://api.openai.com/v1",
    "timeout": 120
  }
}

أمثلة استخدام أساسية

مثال 1: محادثة بسيطة

from dolphin_mcp import DolphinMCP

# تهيئة العميل
mcp_client = DolphinMCP.from_config("./config.json")

# إنشاء محادثة
conversation = mcp_client.create_conversation()

# إضافة رسالة نظام
conversation.add_system_message("أنت مساعد ذكاء اصطناعي مفيد متخصص في برمجة Python.")

# إرسال رسالة مستخدم والحصول على رد
response = conversation.add_user_message("كيف يمكنني تنفيذ شجرة بحث ثنائية في Python؟")

# طباعة الرد
print(response.content)

مثال 2: استخدام الأدوات مع OpenAI

from dolphin_mcp import DolphinMCP
from dolphin_mcp.tools import WebSearchTool, CodeExecutionTool

# تهيئة العميل مع الأدوات
mcp_client = DolphinMCP.from_config("./config.json")

# تسجيل الأدوات
mcp_client.register_tool(WebSearchTool(api_key="your-search-api-key"))
mcp_client.register_tool(CodeExecutionTool())

# إنشاء محادثة مع تفعيل الأدوات
conversation = mcp_client.create_conversation()

# إضافة تعليمات النظام للأدوات
conversation.add_system_message("""
أنت مساعد ذكاء اصطناعي مع إمكانية الوصول إلى الأدوات التالية:
- web_search: البحث في الإنترنت عن معلومات حالية
- code_execution: تنفيذ كود Python بأمان في بيئة مغلقة

استخدم هذه الأدوات عند الاقتضاء لتوفير استجابات دقيقة ومفيدة.
""")

# استعلام المستخدم الذي يتطلب أدوات
response = conversation.add_user_message(
    "ما هو الطقس الحالي في نيويورك؟ وأيضًا، هل يمكنك أن تريني كيفية حساب جذر عدد في Python؟"
)

# ستكون الاستجابة متضمنة استخدام الأدوات تلقائيًا
print(response.content)
print("\nتنفيذ الأدوات:")
for tool_name, tool_result in response.tool_results.items():
    print(f"{tool_name}: {tool_result}")

التكوين المتقدم

استخدام نقاط النهاية المتوافقة مع OpenAI

إذا كنت ترغب في استخدام نقاط نهاية بديلة متوافقة مع OpenAI (مثل Azure OpenAI أو النماذج المستضافة ذاتيًا)، قم بتعديل تكوينك:

{
  "provider": "openai",
  "model_settings": {
    "model": "نموذج النشر الخاص بك",
    "temperature": 0.7,
    "max_tokens": 2048
  },
  "api_config": {
    "api_key": "your-api-key",
    "base_url": "https://your-custom-endpoint.com/v1",
    "api_version": "2023-07-01-preview",  // لـ Azure
    "api_type": "azure"  // لـ Azure
  }
}

تنفيذ أدوات مخصصة

Dolphin-MCP يتيح لك إنشاء أدوات مخصصة لنماذج OpenAI. إليك كيفية تنفيذ أداة آلة حاسبة مخصصة:

from dolphin_mcp.tools import BaseTool
import math

class CalculatorTool(BaseTool):
    name = "calculator"
    description = "يجري العمليات الحسابية"
    
    async def execute(self, expression: str):
        try:
            # إنشاء بيئة آمنة مع دوال رياضية محدودة
            safe_env = {
                "sqrt": math.sqrt,
                "sin": math.sin,
                "cos": math.cos,
                "tan": math.tan,
                "pi": math.pi,
                "e": math.e
            }
            
            # تقييم التعبير في البيئة الآمنة
            result = eval(expression, {"__builtins__": {}}, safe_env)
            return str(result)
        except Exception as e:
            return f"خطأ في الحساب: {str(e)}"
    
    @property
    def parameters(self):
        return {
            "type": "object",
            "properties": {
                "expression": {
                    "type": "string",
                    "description": "التعبير الرياضي المراد تقييمه"
                }
            },
            "required": ["expression"]
        }

# مثال على الاستخدام
mcp_client = DolphinMCP.from_config("./config.json")
mcp_client.register_tool(CalculatorTool())

معالجة الاستجابات المتدفقة

للتطبيقات التي تتطلب استجابات في الوقت الحقيقي:

async def stream_response():
    mcp_client = DolphinMCP.from_config("./config.json")
    conversation = mcp_client.create_conversation()
    
    # إعداد المحادثة
    conversation.add_system_message("أنت مساعد ذكاء اصطناعي مفيد.")
    
    # بث الاستجابة
    async for chunk in conversation.add_user_message_streaming(
        "اشرح الحوسبة الكمية ببساطة."
    ):
        if chunk.type == "content":
            print(chunk.content, end="", flush=True)
        elif chunk.type == "tool_start":
            print(f"\n[بدء استخدام الأداة: {chunk.tool_name}]")
        elif chunk.type == "tool_result":
            print(f"\n[نتيجة الأداة من {chunk.tool_name}]: {chunk.result}")
        elif chunk.type == "error":
            print(f"\nخطأ: {chunk.error}")
    
    print("\nاكتمل الرد.")

# تشغيل الدالة غير المتزامنة
import asyncio
asyncio.run(stream_response())

معالجة الأخطاء

طبق معالجة أخطاء قوية لإدارة مشاكل واجهة برمجة التطبيقات:

from dolphin_mcp.exceptions import MCPAPIError, MCPConfigError, MCPTimeoutError

try:
    mcp_client = DolphinMCP.from_config("./config.json")
    conversation = mcp_client.create_conversation()
    response = conversation.add_user_message("أنشئ استجابة معقدة")
    
except MCPTimeoutError:
    print("انتهت فترة الانتظار. تحقق من اتصال الشبكة لديك أو قم بزيادة قيمة فترة الانتظار.")
    
except MCPAPIError as e:
    print(f"خطأ في واجهة برمجة التطبيقات: {e.status_code} - {e.message}")
    if e.status_code == 429:
        print("تم تجاوز حد المعدل. طبق التراجع الأسي.")
    
except MCPConfigError as e:
    print(f"خطأ في التكوين: {e}")
    
except Exception as e:
    print(f"خطأ غير متوقع: {e}")

تحسين الأداء

لبيئات الإنتاج، ضع في اعتبارك هذه التحسينات:

# إعادة استخدام الجلسة لتجميع الاتصالات
from dolphin_mcp import DolphinMCP
import aiohttp

async def optimized_mcp_usage():
    # إنشاء جلسة مشتركة لتجميع الاتصالات
    async with aiohttp.ClientSession() as session:
        mcp_client = DolphinMCP.from_config(
            "./config.json",
            session=session,
            request_timeout=60,
            connection_pool_size=10
        )
        
        # معالجة محادثات متعددة بكفاءة
        tasks = []
        for i in range(5):
            conversation = mcp_client.create_conversation()
            conversation.add_system_message("أنت مساعد مفيد.")
            tasks.append(conversation.add_user_message_async(f"سؤال {i}: ما هو التعلم الآلي؟"))
        
        # جمع جميع الردود
        responses = await asyncio.gather(*tasks)
        
        for i, response in enumerate(responses):
            print(f"استجابة {i}: {response.content[:100]}...")

الاندماج مع تطبيقات الويب

مثال على اندماج Flask:

from flask import Flask, request, jsonify
from dolphin_mcp import DolphinMCP

app = Flask(__name__)
mcp_client = DolphinMCP.from_config("./config.json")

@app.route("/chat", methods=["POST"])
def chat():
    data = request.json
    conversation_id = data.get("conversation_id")
    message = data.get("message")
    
    # استرجاع أو إنشاء محادثة
    if conversation_id and conversation_id in active_conversations:
        conversation = active_conversations[conversation_id]
    else:
        conversation = mcp_client.create_conversation()
        conversation_id = conversation.id
        active_conversations[conversation_id] = conversation
        conversation.add_system_message("أنت مساعد ذكاء اصطناعي مفيد.")
    
    # معالجة الرسالة
    response = conversation.add_user_message(message)
    
    return jsonify({
        "conversation_id": conversation_id,
        "response": response.content,
        "tool_results": response.tool_results
    })

if __name__ == "__main__":
    active_conversations = {}
    app.run(debug=True)

استكشاف المشكلات الشائعة

المشكلة الحل
خطأ "مفتاح API غير صالح" تحقق من أن مفتاح API الخاص بك من OpenAI صحيح وله الأذونات الكافية
تحديد المعدل طبق التراجع الأسي وتقليل الطلب
أخطاء المهلة قم بزيادة المهلة في التكوين أو تحقق من اتصال الشبكة
لم يتم العثور على النموذج تحقق من أن اسم النموذج موجود في النماذج المتاحة من OpenAI
تم تجاوز حد الرموز قم بتقسيم الطلبات إلى أجزاء أصغر أو استخدم التدفق

استنتاج

Dolphin-MCP يوفر وسيلة مرنة ومفتوحة المصدر لاستخدام نماذج OpenAI عبر بروتوكول MCP. هذا التنفيذ يحرر المطورين من قفل المورد بينما يحافظ على واجهة متسقة عبر مقدمي LLM المختلفين. من خلال اتباع الخطوات في هذا الدليل، يمكنك الاستفادة من قوة نماذج GPT من خلال بنية MCP القياسية.

philschmid.de يظهر تكاملات مماثلة مع LLMs الأخرى، ويمكن لأدوات مثل mcpadapt أن تساعد في توسيع قدرات Dolphin-MCP بشكل أكبر.