دمج واجهات برمجة تطبيقات DeepSeek في تطبيقاتك في 5 دقائق فقط

@apidog

@apidog

17 أكتوبر 2025

دمج واجهات برمجة تطبيقات DeepSeek في تطبيقاتك في 5 دقائق فقط

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات

في عصر التطبيقات المدعومة بالذكاء الاصطناعي، يمكن أن يفتح دمج نماذج اللغة المتقدمة في برنامجك إمكانيات غير مسبوقة - من الدردشات الذكية إلى أدوات تحليل البيانات. تقدم واجهات برمجة التطبيقات الخاصة بـ DeepSeek وظائف ذكاء اصطناعي متطورة، لكن التحدي الحقيقي يكمن في دمجها بسلاسة في تطبيقك دون الانغماس في إصلاح الأخطاء أو رموز القوالب.

توجهك هذه الدليل خلال عملية دمج واجهات برمجة التطبيقات الخاصة بـ DeepSeek في تطبيقك، مستفيدًا من منصة واجهة برمجة تطبيقات بديهية - Apidog لاختبار وتصحيح وإنتاج مقتطفات من الشيفرة الجاهزة للاستخدام في دقائق. سواء كنت تبني خلفية بلغة بايثون أو واجهة أمامية بلغة جافا سكريبت، بنهاية هذه المقالة، سيكون لديك دمج كامل لوظائف واجهة برمجة التطبيقات مع الحد الأدنى من الجهد.


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

  1. حساب DeepSeek (قم بالتسجيل هنا).
  2. معرفة أساسية بواجهات برمجة تطبيقات REST والبرمجة (بايثون / جافا سكريبت مستخدمة هنا).
  3. أداة مثل Apidog لاختبار واجهات برمجة التطبيقات.

الخطوة 1: احصل على مفتاح واجهة برمجة التطبيقات لـ DeepSeek

كل طلب واجهة برمجة تطبيقات يتطلب مصادقة. إليك كيفية الحصول على مفتاحك:

  1. قم بتسجيل الدخول إلى حسابك في DeepSeek.
  2. انتقل إلى مفاتيح واجهة برمجة التطبيقات ضمن إعدادات حسابك.
  3. انقر على إنشاء مفتاح API جديد ونسخه.

⚠️ هام: تعامل مع هذا المفتاح وكأنه كلمة مرور. لا تعرضه أبدًا في الشيفرة على جانب العميل أو في مستودعات عامة.


الخطوة 2: اختبار واجهة برمجة التطبيقات لـ DeepSeek

توفر وثائق واجهة برمجة التطبيقات الخاصة بـ DeepSeek التي أنشأتها Apidog ملعبًا تفاعليًا لاختبار نقاط النهاية مباشرةً على الوثائق دون كتابة سطر واحد من الشيفرة. إليك كيفية القيام بذلك:

1. افتح الوثائق: انتقل إلى نقطة النهاية إنشاء إكمال دردشة.

DeepSeek chat completion APIs

2. قم بالمصادقة:

Authorization: Bearer YOUR_API_KEY  
Adding the DeepSeek API keys

3. صمم طلبك:

في جسم الطلب، حدد النموذج (مثل deepseek-chat) وأضف رسالة:

{
  "model": "deepseek-chat",
  "messages": [
    {"role": "user", "content": "اشرح الحوسبة الكمية في 3 جمل."}
  ]
}
crafting DeepSeek API request

4. أرسل الطلب: انقر على إرسال وشاهد الاستجابة في الوقت الحقيقي.

getting DeekSeek response in real time

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


الخطوة 3: إنشاء مقتطفات الشيفرة لكتلتك

يسمح لك Apidog بـ إنشاء شيفرات برمجية جاهزة لمختلف اللغات والأطر بناءً على وثائق واجهات برمجة التطبيقات التي يمكن استخدامها مباشرة في كتل البرمجة الخاصة بك. إليك كيفية القيام بذلك:

1. افتح مشروع DeepSeek على تطبيق Apidog:

Click on "Run in Apidog" to run the project on Apidog app

2. اختر لغتك:

generating code directly from API documentation created by Apidog
choose the language to generate the codes

3. انسخ والصق الشيفرة:

import requests
import json

url = "https://api.deepseek.com/chat/completions"

payload = json.dumps({
   "messages": [
      {
         "content": "أنت مساعد مفيد",
         "role": "system"
      },
      {
         "content": "مرحباً",
         "role": "user"
      }
   ],
   "model": "deepseek-chat",
   "frequency_penalty": 0,
   "max_tokens": 2048,
   "presence_penalty": 0,
   "response_format": {
      "type": "text"
   },
   "stop": None,
   "stream": False,
   "stream_options": None,
   "temperature": 1,
   "top_p": 1,
   "tools": None,
   "tool_choice": "none",
   "logprobs": False,
   "top_logprobs": None
})
headers = {
   'Authorization': 'Bearer {{API_KEY}}',
   'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer {{API_KEY}}");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
   "messages": [
      {
         "content": "أنت مساعد مفيد",
         "role": "system"
      },
      {
         "content": "مرحباً",
         "role": "user"
      }
   ],
   "model": "deepseek-chat",
   "frequency_penalty": 0,
   "max_tokens": 2048,
   "presence_penalty": 0,
   "response_format": {
      "type": "text"
   },
   "stop": null,
   "stream": false,
   "stream_options": null,
   "temperature": 1,
   "top_p": 1,
   "tools": null,
   "tool_choice": "none",
   "logprobs": false,
   "top_logprobs": null
});

var requestOptions = {
   method: 'POST',
   headers: myHeaders,
   body: raw,
   redirect: 'follow'
};

fetch("https://api.deepseek.com/chat/completions", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));

4. خصص الشيفرة: استبدل YOUR_API_KEY وقم بتعديل محتوى الرسالة.


الخطوة 4: دمجها في تطبيقك

لنقم ببناء تطبيق CLI بسيط بلغة بايثون يستخدم واجهة برمجة التطبيقات لـ DeepSeek للإجابة على أسئلة المستخدمين.

إعداد المشروع

1. أنشئ دليلًا وقم بتثبيت التبعيات:

mkdir deepseek-cli && cd deepseek-cli  
pip install requests python-dotenv  

2. قم بتخزين مفتاح واجهة برمجة التطبيقات الخاص بك بشكل آمن باستخدام .env:

echo "DEEPSEEK_API_KEY=your_api_key_here" > .env  

تنفيذ الشيفرة

import argparse
import asyncio
import json
import os
import sys
from typing import AsyncGenerator, Generator

import httpx
import requests


async def async_deepseek(
    api_key: str,
    model: str,
    messages: list,
    temperature: float
) -> AsyncGenerator[str, None]:
    """
    مولد غير متزامن لبث استجابات DeepSeek
    """
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}",
    }
    data = {
        "model": model,
        "messages": messages,
        "temperature": temperature,
        "stream": True,
    }

    async with httpx.AsyncClient() as client:
        async with client.stream(
            "POST",
            "https://api.deepseek.com/v1/chat/completions",
            headers=headers,
            json=data,
        ) as response:
            response.raise_for_status()
            async for line in response.aiter_lines():
                if line.startswith("data: "):
                    try:
                        json_data = json.loads(line[6:])
                        if chunk := json_data["choices"][0]["delta"].get("content", ""):
                            yield chunk
                    except json.JSONDecodeError:
                        pass


def sync_deepseek(
    api_key: str,
    model: str,
    messages: list,
    temperature: float
) -> Generator[str, None, None]:
    """
    مولد متزامن لبث استجابات DeepSeek
    """
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}",
    }
    data = {
        "model": model,
        "messages": messages,
        "temperature": temperature,
        "stream": True,
    }

    with requests.post(
        "https://api.deepseek.com/v1/chat/completions",
        headers=headers,
        json=data,
        stream=True,
    ) as response:
        response.raise_for_status()
        for line in response.iter_lines():
            if line:
                decoded_line = line.decode("utf-8")
                if decoded_line.startswith("data: "):
                    try:
                        json_data = json.loads(decoded_line[6:])
                        if chunk := json_data["choices"][0]["delta"].get("content", ""):
                            yield chunk
                    except json.JSONDecodeError:
                        pass


def main():
    parser = argparse.ArgumentParser(
        description="عميل CLI لـ DeepSeek - تحدث مع نماذج DeepSeek"
    )
    parser.add_argument(
        "prompt",
        type=str,
        help="رسالتك لإرسالها إلى DeepSeek"
    )
    parser.add_argument(
        "--model",
        type=str,
        default="deepseek-chat",
        help="النموذج لاستخدامه (افتراضي: deepseek-chat)"
    )
    parser.add_argument(
        "--temperature",
        type=float,
        default=0.7,
        help="معامل درجة الحرارة (افتراضي: 0.7)"
    )
    parser.add_argument(
        "--async-mode",
        action="store_true",
        help="استخدم الوضع غير المتزامن (يتطلب Python 3.7+)"
    )
    args = parser.parse_args()

    api_key = os.getenv("DEEPSEEK_API_KEY")
    if not api_key:
        print("خطأ: اضبط مفتاح واجهة برمجة التطبيقات في متغير البيئة DEEPSEEK_API_KEY")
        sys.exit(1)

    messages = [{"role": "user", "content": args.prompt}]

    try:
        if args.async_mode:
            async def run_async():
                try:
                    async for chunk in async_deepseek(
                        api_key=api_key,
                        model=args.model,
                        messages=messages,
                        temperature=args.temperature
                    ):
                        print(chunk, end="", flush=True)
                    print()
                except httpx.HTTPStatusError as e:
                    print(f"\nحدث خطأ في HTTP: {e.response.status_code} {e.response.reason_phrase}")
                except Exception as e:
                    print(f"\nحدث خطأ: {str(e)}")

            asyncio.run(run_async())
        else:
            try:
                for chunk in sync_deepseek(
                    api_key=api_key,
                    model=args.model,
                    messages=messages,
                    temperature=args.temperature
                ):
                    print(chunk, end="", flush=True)
                print()
            except requests.exceptions.HTTPError as e:
                print(f"\nحدث خطأ في HTTP: {e.response.status_code} {e.response.reason_phrase}")
            except Exception as e:
                print(f"\nحدث خطأ: {str(e)}")

    except KeyboardInterrupt:
        print("\n\nتم مقاطعة العملية من قبل المستخدم")
        sys.exit(0)


if __name__ == "__main__":
    main()

تشغيل التطبيق

اكتب سؤالاً (مثل، "ما هي عاصمة فرنسا؟") وانظر الاستجابة!


الخطوة 5: التعامل مع الأخطاء وحالات الحافة

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

1. تحقق من رموز حالة HTTP:

2. آليات إعادة المحاولة:

from time import sleep

def get_deepseek_response(prompt, retries=3):
    # ... existing code ...
    except requests.exceptions.RequestException as e:
        if retries > 0:
            sleep(2)
            return get_deepseek_response(prompt, retries - 1)
        else:
            return f"خطأ: {str(e)}"

3. تحقق من المدخلات:
تأكد من أن الرسائل ضمن حدود الرموز ومهيئة بشكل صحيح.


الخطوة 6: تحسين للإنتاج

  1. تخزين الاستجابات في الذاكرة المؤقتة: استخدم Redis أو Memcached لتخزين الاستفسارات المتكررة.
  2. مراقبة الاستخدام: تتبع مكالمات واجهة برمجة التطبيقات لتجنب تجاوز الحصص.
  3. المعالجة غير المتزامنة: لتطبيقات عالية الإنتاجية، استخدم مكتبات غير متزامنة مثل aiohttp (بايثون) أو axios (جافا سكريبت).

استنتاج

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

المثال أعلاه هو فقط قمة الجليد. مع نماذج DeepSeek، يمكنك بناء أي شيء من مولدات المحتوى التلقائية إلى المعلمين المدعومين بالذكاء الاصطناعي. الآن بعد أن لديك المخطط، انطلق و حوّل تطبيقك إلى قوة في مجال الذكاء الاصطناعي!

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات