بدء التشغيل السريع لواجهة برمجة التطبيقات

انتقل من مفتاح API إلى طلبك الأول في دقائق. اتبع الإرشادات خطوة بخطوة لدمج نماذج الذكاء الاصطناعي من Ninja في منتجك - مع أمثلة التعليمات البرمجية ومجموعات SDK وكل ما تحتاجه لبدء البناء.

التسجيل

قم بالتسجيل في النينجا الخارق لبدء استخدام واجهات برمجة التطبيقات الخاصة بنا.

يمكنك التسجيل مجانًا أو الاشتراك في إحدى خطط Ninja المدفوعة. تمنحك Ultra and Business حدًا أعلى من الوصول إلى الملعب لتجربة برامج LLMs الرائدة والمنطقية والبحثية العميقة،

عندما تكون مستعدًا للانتقال من الاستكشاف إلى التنفيذ، قم بشراء أرصدة لبدء إنشاء منتجات وتجارب الذكاء الاصطناعي للترميز والكتابة وغير ذلك الكثير.

قروض الشراء

  • قم بالتسجيل أو تسجيل الدخول على النينجا الخارق

  • انتقل إلى إعدادات وانقر تمكين في قسم «حسب الطلب»

  • اختر المبلغ الذي تريده (الحد الأدنى للشراء هو 50 دولارًا أمريكيًا)

  • انقر التأكيد والدفع

أرصدتك في حسابك على الفور وجاهزة للاستخدام.

قم بإنشاء مفتاح API

  • بعد شراء ائتماناتك، انتقل إلى «إدارة مفاتيح API الخاصة بك» القسم الخاص بـ صفحة مفاتيح API والائتمانات.

  • انقر فوق «إنشاء مفتاح جديد» زر.

  • في «الاسم» الحقل، أدخل اسمًا لمفتاحك (على سبيل المثال، مفتاح الإنتاج) ثم انقر «إنشاء مفتاح».

  • بمجرد إنشاء مفتاحك، انسخها واحفظه في مكان آمن، حيث يمكن لأي شخص لديه حق الوصول استخدامه. إذا لزم الأمر، يمكنك تجدد مفتاح جديد.

استخدام واجهات برمجة تطبيقات النينجا

نظرة عامة

عنوان URL الأساسي:
https://api.myninja.ai/v1

المصادقة:
تتطلب جميع الطلبات مفتاح API الذي تم تمريره في العنوان كما يلي <token-key>أين رمز المصادقة الخاص بك:
التفويض: حامل <token-key>

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

الموديلات:
تشمل النماذج المتوفرة حاليًا:
البحث العميق للنينجا
وكيل النينجا الخارق: توربو
وكيل النينجا الخارق: أبيك
وكيل النينجا الخارق: التفكير

يمكن اختيار هذه النماذج من خلال توفير نموذج المعلمة في نص الطلب الخاص بك.

صيغة الطلب

تتبع واجهة برمجة تطبيقات النينجا مواصفات واجهة برمجة تطبيقات OpenAI عن كثب. يحتوي كائن JSON للطلب على:

نموذج (سلسلة):
معرف النموذج المراد استخدامه (على سبيل المثال، «البحث العميق للنينجا»).

الرسائل (المصفوفة):
مجموعة من كائنات الرسائل. يتبع كل كائن التنسيق:

JSON

{ "role": "user", "content": "Your query here." }
  

تيار (منطقي):
عند الضبط على صحيح، تستجيب واجهة برمجة التطبيقات باستجابة متدفقة.

خيارات التدفق (الكائن):
خيارات إضافية للبث، مثل «include_usage»: صحيح لتضمين تفاصيل استخدام الرمز المميز.

رؤوس إضافية (كائن):
أي عناوين إضافية تتطلبها Ninja API (لا شيء في هذه المرحلة)

مثال الطلب (جسون)

JSON

{
  "model": "ninja-super-agent:turbo",
  "messages": [
    {
      "role": "user",
      "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
    }
  ],
  "stream": true,
  "stream_options": {
    "include_usage": true
  }
}
  

الاستجابة

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

المحتوى:
نص الإكمال، والذي قد يتضمن خطوات منطقية مغلفة بـ XML.

اقتباسات:
قائمة بعناوين URL التي تدعم المنطق المقدم.

معلومات الاستخدام:
إحصائيات استخدام الرمز المميز إذا «include_usage»: صحيح تم تحديده.

يمكن لرمز العميل معالجة هذه الأجزاء لعرض استجابة غنية تتضمن:

خطوات التفكير: تم استخراجه وتنسيقه من مقاطع XML.

اقتباسات: يتم عرضها كقائمة مرقمة.

إحصائيات الاستخدام: عرض رموز الإدخال والإخراج.

أمثلة التعليمات البرمجية النموذجية

Python

import time
import xml.etree.ElementTree as ET
from uuid import uuid4
from openai import OpenAI, Stream
from openai.types import CompletionUsage
from openai.types.chat import ChatCompletionChunk

# Initialize the OpenAI client with your API key and base URL.
client = OpenAI(api_key="PUT_YOUR_API_KEY_HERE", base_url="https://api.myninja.ai/v1")

def print_reasoning_step(reasoning_step: str):
    step = ET.fromstring(reasoning_step)
    print(f"[{step.find('header').text}]\n{step.find('content').text}\n")

def print_citations(citations: list[str]):
    width = len(str(len(citations)))
    print("[Citations]")
    for n, citation in enumerate(citations, 1):
        print(f"{n:{width}}. {citation}")
    print()

def print_content(content: str):
    print(content, end="", flush=True)

def print_usage(usage: CompletionUsage):
    print(
        f"\n\n| Input tokens: {usage.prompt_tokens:,} "
        f"| Output tokens: {usage.completion_tokens:,} ",
        end="",
        flush=True,
    )

def main():
    query = (
        "I am an advanced snowboarder and want a good all-mountain snowboard and new boots and "
        "I'd like to spend no more than $1000 all in. Also look at trends and reviews and give "
        "me options that are currently trendy and cool and have high reviews."
    )

    start_time = time.time()
    
    response: Stream[ChatCompletionChunk] = client.chat.completions.create(
        model="ninja-deep-research",
        messages=[
            {"role": "user", "content": query},
        ],
        stream=True,
        stream_options={
            "include_usage": True,
        },
    )

    for chunk in response:
        for choice in chunk.choices:
            if content := choice.delta.content:
                if content.startswith("<step>"):
                    print_reasoning_step(content)
                else:
                    print_content(content)

        if citations := chunk.model_extra.get("citations"):
            print_citations(citations)
        elif usage := chunk.usage:
            print_usage(usage)

    elapsed_time = time.time() - start_time
    print(f"| Elapsed: {elapsed_time:.1f} seconds |")

if __name__ == "__main__":
    main()
  
cURL

curl -N https://api.myninja.ai/v1/chat/completions \
  -H "Authorization: Bearer PUT_YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ninja-super-agent:turbo",
    "messages": [
      {
        "role": "user",
        "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    "stream": true,
    "stream_options": {
      "include_usage": true
    }
  }'
Java

HttpResponse<String> response = Unirest.post("https://api.myninja.ai/v1/chat/completions")
  .header("Authorization", "Bearer PUT_YOUR_API_KEY_HERE")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
  
JavaScript

const options = {
  method: 'POST',
  headers: {
    Authorization: 'Bearer PUT_YOUR_API_KEY_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: "ninja-super-agent:turbo",
    messages: [
      {
        role: "user",
        content: "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    stream: true,
    stream_options: {
      include_usage: true
    }
  })
};

fetch('https://api.myninja.ai/v1/chat/completions', options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));
  
Go

package main

import (
  "bufio"
  "bytes"
  "fmt"
  "io"
  "log"
  "net/http"
)

func main() {
  url := "https://api.myninja.ai/v1/chat/completions"

  jsonStr := ` + "`" + `{
    "model": "ninja-super-agent:turbo",
    "messages": [
      {
        "role": "user",
        "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    "stream": true,
    "stream_options": {
      "include_usage": true
    }
  }` + "`" + `

  req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(jsonStr)))
  if err != nil {
    log.Fatalf("Error creating request: %v", err)
  }

  req.Header.Set("Authorization", "Bearer PUT_YOUR_API_KEY_HERE")
  req.Header.Set("Content-Type", "application/json")

  client := &http.Client{}
  resp, err := client.Do(req)
  if err != nil {
    log.Fatalf("Error sending request: %v", err)
  }
  defer resp.Body.Close()

  if resp.StatusCode != http.StatusOK {
    log.Fatalf("Request failed with status: %s", resp.Status)
  }

  reader := bufio.NewReader(resp.Body)
  for {
    line, err := reader.ReadBytes('\n')
    if err != nil {
      if err == io.EOF {
        break
      }
      log.Fatalf("Error reading response: %v", err)
    }
    fmt.Print(string(line))
  }
}
  
C#

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

namespace NinjaApiExample
{
  class Program
  {
    static async Task Main(string[] args)
    {
      var url = "https://api.myninja.ai/v1/chat/completions";
      var apiKey = "PUT_YOUR_API_KEY_HERE";

      using var client = new HttpClient();
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

      var payload = new
      {
        model = "ninja-super-agent:turbo",
        messages = new[]
        {
          new { role = "user", content = "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?" }
        },
        stream = true,
        stream_options = new { include_usage = true }
      };

      var jsonPayload = JsonSerializer.Serialize(payload);
      var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

      try
      {
        var response = await client.PostAsync(url, content);
        response.EnsureSuccessStatusCode();

        var responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseBody);
      }
      catch (HttpRequestException e)
      {
        Console.WriteLine("Request error: " + e.Message);
      }
    }
  }
}
  

التسعير

الوضع

سعر الإدخال/ لكل رموز M

سعر الإخراج/ لكل رموز M

السعر/ مهمة

كوين 3 كودر 480B (المخ)

الإعداد الافتراضي لـ نينجا كلاين AI ستوديو

1.50 دولار

الوضع القياسي

توازن الجودة والسرعة
الإعداد الافتراضي:
غلام 4.6
ديب كودر:
غلام 4.6

1.00 دولار

الوضع المعقد

برنامج LLM عالي الجودة للمهام المعقدة
الإعداد الافتراضي:
سونيت 4.5
ديب كودر
سونيت 4.5

1.50 دولار

الوضع السريع

أسرع وكيل عام في العالم
الإعداد الافتراضي:
غلام 4.6*
البحث العميق:
Qwen Model Logo
كوين 3 — 235 ب*
ديب كودر:
غلام 4.6
*مدعوم من سيريبراس
Cerebras logo

1.50 دولار

الوضع

سعر الإدخال/ لكل رموز M

سعر الإخراج/ لكل رموز M

السعر/ مهمة

كوين 3 كودر 480B (المخ)

الإعداد الافتراضي لـ نينجا كلاين AI ستوديو

3.75 دولار

3.75 دولار

الوضع القياسي

توازن الجودة والسرعة
الإعداد الافتراضي:
غلام 4.6
ديب كودر:
غلام 4.6

1.50 دولار

1.50 دولار

الوضع المعقد

برنامج LLM عالي الجودة للمهام المعقدة
الإعداد الافتراضي:
سونيت 4.5
ديب كودر
سونيت 4.5

4.50 دولار

22.50 دولارًا

الوضع السريع

أسرع وكيل عام في العالم
الإعداد الافتراضي:
غلام 4.6*
البحث العميق:
Qwen Model Logo
كوين 3 — 235 ب*
ديب كودر:
غلام 4.6
*مدعوم من سيريبراس
Cerebras logo

3.75 دولار

3.75 دولار

نموذج

سعر الإدخال/ لكل رموز M

سعر الإخراج/ لكل رموز M

توربو 1.0

0.11 دولار

0.42 دولار

أبيX 1.0

0.88 دولار

7.00 دولار

المنطق 2.0

0.38 دولار

1.53 دولار

ديب ريسيرش 2.0

1.40 دولار

5.60 دولار

حدود الأسعار

يفرض Ninja AI قيودًا على معدلات طلبات الاستدلال لكل نموذج لضمان قدرة المطورين على تجربة الاستدلال الأسرع.

نموذج

طلب لكل دقيقة (دورة في الدقيقة)

توربو 1.0

50

أبيX 1.0

20

المنطق 2.0

30

ديب ريسيرش 2.0

5

Build Your First App in Minutes

Describe the task. Ninja turns it into an app that runs step by step for you. No credit card required.

Ninja's SuperNinja interface showcasing the chat and tasks

FAQ

Frequently Asked Questions

Everything you need to know about Ninja API.

Try for Free

How can I increase my auto-pay thresholds and amount?

How can I cancel my auto-payment agreement?

How do I delete an API key?

How can I view the usage of each API request?