DEV Community

Cover image for طريقة استخدام Sakana Fugu API
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

طريقة استخدام Sakana Fugu API

تستخدم واجهة برمجة تطبيقات Sakana Fugu نمطًا بسيطًا: أنشئ مفتاحًا من console.sakana.ai، انسخ عنوان URL الأساسي من لوحة التحكم، ثم وجّه عميل OpenAI الحالي إلى نقطة النهاية الجديدة. لا تحتاج إلى SDK جديد؛ لأن Fugu يقدّم واجهة واحدة متوافقة مع OpenAI. خلف هذه الواجهة، يعمل Fugu كنظام تنسيق متعدد الوكلاء يقرر، وفقًا لـ صفحة إصدار Sakana، هل يجيب مباشرة أم ينسّق عدة نماذج ثم يعيد نتيجة واحدة. إذا سبق لك استخدام بوابات مشابهة مثل إعداد واجهة برمجة تطبيقات Claude Fable 5، فالنمط مألوف: غيّر base_url والمفتاح فقط.

جرّب Apidog اليوم

سيرشدك هذا الدليل عمليًا إلى إنشاء المفتاح، إعداد العميل في Python وJavaScript، اختيار قيمة model، تفعيل البث، واختبار الطلب قبل دمجه في تطبيقك.

ما هي واجهة برمجة تطبيقات Sakana Fugu؟

Fugu ليس نموذجًا واحدًا بالمعنى التقليدي. تصفه Sakana بأنه نموذج لغوي متخصص في التفويض، تواصل الوكلاء، وتجميع النتائج. عند إرسال طلب، يقرأه المنسّق ثم يقرر: إما أن يجيب بنفسه، أو يبني فريقًا من نماذج اللغة الكبيرة، بما في ذلك مثيلات أخرى من Fugu، ثم يدمج المخرجات في رد واحد.

Sakana Fugu overview

من جهة التطبيق، لا تحتاج إلى إدارة أي من هذا. أنت ترسل طلبًا إلى نقطة نهاية متوافقة مع OpenAI وتستقبل Chat Completion عاديًا. لا تبني وكلاء، ولا تكتب منطق توجيه، ولا تدير مزودين متعددين داخل الكود.

يوجد متغيران رئيسيان:

  • fugu: خيار متوازن ومنخفض زمن الاستجابة للترميز، مراجعة الكود، روبوتات الدردشة، والخدمات التفاعلية.
  • fugu-ultra: خيار يستهدف جودة أعلى للمهام البحثية، استنساخ الأوراق، تحليل الأمن السيبراني، والبحث الأدبي أو براءات الاختراع.

خلال مرحلة البيتا، ظهر اسم "Fugu Mini" في بعض المصادر. تعامل معه كاسم قديم، واستخدم الأسماء الحالية التي تعرضها لوحة التحكم.

Fugu variants

الخلفية البحثية منشورة أيضًا. تدعم النهج ورقتان من ICLR 2026: Trinity، وهو منسّق صغير بأقل من 20 ألف معلمة يستخدم أدوار Thinker وWorker وVerifier، وConductor، وهو نموذج بحجم 7 مليارات معلمة يتعلم بنية الاتصال بين الوكلاء. لا تخلط بينهما؛ فهما طريقتان مختلفتان، ولم يُنشر الحجم الدقيق لمعلمات منتج Fugu النهائي.

الخطوة 1: إنشاء مفتاح API لـ Fugu

افتح console.sakana.ai وسجّل الدخول باستخدام Google أو البريد الإلكتروني. كان الوصول في مرحلة تجريبية مع عدد محدود من المستخدمين بدءًا من أواخر أبريل 2026، وقد تختلف حالة التسجيل الذاتي أو قيود المناطق مثل الاتحاد الأوروبي/المنطقة الاقتصادية الأوروبية. تحقق من دعم منطقتك داخل اللوحة قبل البدء.

Sakana console

بعد الدخول:

  1. افتح قسم مفاتيح API.
  2. أنشئ مفتاحًا جديدًا.
  3. خزّنه في متغير بيئة أو مدير أسرار.
  4. لا تضع المفتاح داخل Git أو ملفات الواجهة الأمامية.
  5. دوّر المفتاح إذا تسرب.

مثال متغيرات بيئة:

export FUGU_API_KEY="YOUR_FUGU_API_KEY"
export FUGU_BASE_URL="<YOUR_FUGU_BASE_URL_FROM_CONSOLE>"
Enter fullscreen mode Exit fullscreen mode

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

الخطوة 2: توجيه عميل OpenAI الحالي إلى Fugu

بما أن Fugu متوافق مع OpenAI، فإن شكل الطلب يبقى قريبًا من Chat Completions API. غيّر فقط:

  • api_key
  • base_url أو baseURL
  • قيمة model حسب المتغير المتاح في حسابك

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["FUGU_API_KEY"],
    base_url=os.environ["FUGU_BASE_URL"],  # انسخه من console.sakana.ai
)

response = client.chat.completions.create(
    model="fugu",  # تأكد من الاسم الدقيق داخل لوحة التحكم
    messages=[
        {"role": "system", "content": "You are a helpful engineering assistant."},
        {"role": "user", "content": "Refactor this function to remove the nested loop."},
    ],
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

JavaScript

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.FUGU_API_KEY,
  baseURL: process.env.FUGU_BASE_URL, // انسخه من console.sakana.ai
});

const response = await client.chat.completions.create({
  model: "fugu", // تأكد من الاسم الدقيق داخل لوحة التحكم
  messages: [
    { role: "system", content: "You are a helpful engineering assistant." },
    { role: "user", content: "Refactor this function to remove the nested loop." },
  ],
});

console.log(response.choices[0].message.content);
Enter fullscreen mode Exit fullscreen mode

هذا هو الترحيل الأساسي. إذا سبق لك إعداد عميل OpenAI عبر بوابة مثل Claude Code مع OpenRouter، فالنمط نفسه: نفس SDK، عنوان URL جديد، ومفتاح جديد.

الخطوة 3: اختيار قيمة model

حقل model يحدد المتغير الذي تريد استخدامه. القيم الشائعة المذكورة هي:

fugu
fugu-ultra
Enter fullscreen mode Exit fullscreen mode

ظهرت أيضًا معرفات أقدم مثل:

fugu-ultra-20260615
Enter fullscreen mode Exit fullscreen mode

لكن لا تعتمد على معرف قديم من مقال أو لقطة شاشة. استخدم القيمة المعروضة في لوحة التحكم لديك.

قاعدة عملية:

  • استخدم fugu للتطبيقات التفاعلية، الدردشة، الترميز، ومراجعة الكود.
  • استخدم fugu-ultra عندما تكون جودة الإجابة أهم من زمن الاستجابة، مثل البحث العميق أو التحليل الأمني.

مثال:

# متوازن ومنخفض زمن الاستجابة
fast = client.chat.completions.create(
    model="fugu",
    messages=[
        {"role": "user", "content": "Summarize this changelog in three bullets."}
    ],
)

# أعلى جودة للإجابة
deep = client.chat.completions.create(
    model="fugu-ultra",  # تحقق من الاسم الدقيق في لوحة التحكم
    messages=[
        {
            "role": "user",
            "content": "Reproduce the main result of this paper and flag any gaps.",
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

الخطوة 4: بث الاستجابات

البث يعمل بالشكل نفسه تقريبًا كما في OpenAI. فعّل stream=True في Python أو stream: true في JavaScript، ثم اقرأ الأجزاء تدريجيًا.

استخدم البث عندما تريد:

  • واجهة دردشة تعرض النص فور وصوله.
  • استجابات طويلة.
  • تحسين الإحساس بزمن الاستجابة في الواجهة.

البث في Python

stream = client.chat.completions.create(
    model="fugu",
    messages=[
        {"role": "user", "content": "Walk me through setting up a CI pipeline."}
    ],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)
Enter fullscreen mode Exit fullscreen mode

البث في JavaScript

const stream = await client.chat.completions.create({
  model: "fugu",
  messages: [
    { role: "user", content: "Walk me through setting up a CI pipeline." },
  ],
  stream: true,
});

for await (const chunk of stream) {
  const delta = chunk.choices[0]?.delta?.content;
  if (delta) process.stdout.write(delta);
}
Enter fullscreen mode Exit fullscreen mode

ملاحظة مهمة: حتى مع البث، لا ترى محادثات الوكلاء الداخلية أو مخطط التوجيه. إذا قرر Fugu بناء فريق نماذج، فالتنسيق يحدث على جانب الخادم، وتستقبل أنت النص النهائي المركّب فقط.

ماذا يحدث خلف طلب واحد؟

عند وصول الطلب، يقرأه منسّق Fugu ثم يختار أحد مسارين:

  1. الإجابة مباشرة.
  2. بناء فريق من نماذج متعددة، وربما استخدام مثيلات متكررة من Fugu، ثم تجميع النتيجة.

هذا مفيد من ناحية الجودة والحوكمة. بحسب صفحة الإصدار، يمكن تبديل الوكلاء داخل المجموعة، ويمكن اختيار وكلاء معينين في حالات قواعد البيانات أو الامتثال، ويمكن لـ Fugu التوجيه ديناميكيًا حول قيود المزودين.

لكن عند قراءة المعايير، انتبه للتفسير: Fugu منسّق يمكنه استدعاء نماذج متقدمة من مزودين آخرين، وليس بالضرورة نموذجًا منفردًا ينافس كل نموذج بمفرده. عندما تقول Sakana إن Fugu Ultra يقف جنبًا إلى جنب مع نماذج مثل Fable 5 وMythos Preview، فهذا ادعاء مساواة من نظام نماذج منسّق. وعندما تشير إلى تفوقه في تطبيقات مثل AutoResearch أو الشطرنج بلقطة واحدة أو التنبؤ المالي، فقد يكون التفوق نتيجة تنسيق عدة نماذج، لا نموذج مستقل واحد.

للمقارنة مع نموذج فردي من Anthropic، راجع دليل واجهة برمجة تطبيقات Claude Fable 5. ولمزيد من الخلفية حول بنية Fugu، راجع ما هو Sakana Fugu.

ملاحظة حول الوصول والتسعير والبدائل

تؤكد صفحة الإصدار وجود فئات اشتراك للاستخدام اليومي وخطة دفع حسب الاستخدام للأحمال الأكبر والمؤسسية. لكن الأرقام الدولارية المحددة المتداولة تأتي من مصادر ثانوية وقد تتغير. لذلك لا تعتمد على أسعار من مقالات قديمة. تحقق من السعر الفعلي داخل لوحة التحكم اعتبارًا من اليوم، 2026-06-22، قبل اختيار خطة.

إذا كنت تقارن Fugu مع بوابات توجيه مثل OpenRouter أو Martian، فافصل بين المفهومين:

  • بوابة التوجيه تختار عادة نموذجًا واحدًا لكل طلب.
  • Fugu ينفذ تنسيقًا تكيفيًا يمكنه استخدام عدة نماذج وتجميع نتائجها.

إذا كنت تبني قرارًا معماريًا حول البوابات، يمكنك البدء من قائمة أفضل بدائل OpenRouter.

اختبار Fugu باستخدام Apidog قبل كتابة الكود

بما أن Fugu يستخدم تنسيق Chat Completions المتوافق مع OpenAI، يمكنك اختباره كأي واجهة HTTP داخل Apidog.

الخطوات:

  1. أنشئ طلبًا جديدًا في Apidog.
  2. ضع base_url الذي نسخته من لوحة Sakana.
  3. أضف مفتاح Fugu كـ Bearer Token.
  4. اضبط جسم JSON باستخدام model وmessages.
  5. أرسل الطلب وافحص الاستجابة.

مثال جسم الطلب:

{
  "model": "fugu",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful engineering assistant."
    },
    {
      "role": "user",
      "content": "Explain how to migrate an OpenAI-compatible client to Fugu."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Testing Fugu API in Apidog

يساعدك ذلك على التحقق من:

  • صحة base_url.
  • صحة مفتاح API.
  • صحة قيمة model.
  • شكل الاستجابة قبل دمجها في التطبيق.
  • سلوك البث إذا كنت تختبر واجهة محادثة.

يمكنك أيضًا حفظ الطلب، استخدام بيئات مختلفة للمفاتيح، ومشاركة مثال قابل للتشغيل مع الفريق. للتفاصيل، راجع دليل اختبار واجهة برمجة تطبيقات Sakana Fugu باستخدام Apidog. وعندما تريد البدء من عميل API جاهز، يمكنك تنزيل Apidog.

الأسئلة المتكررة

هل أحتاج إلى SDK جديد لاستدعاء Sakana Fugu؟

لا. استخدم عميل openai الحالي في Python أو JavaScript. غيّر فقط base_url إلى القيمة من لوحة التحكم، واستخدم مفتاح Fugu.

أين أجد عنوان URL الأساسي لـ Fugu؟

من console.sakana.ai بعد تسجيل الدخول. لا تخمّنه ولا تستخدم عنوانًا من مزود آخر. القيمة داخل لوحة التحكم هي المرجع الموثوق.

ما الفرق بين fugu وfugu-ultra؟

fugu مناسب للعمل اليومي، الترميز، الدردشة، ومراجعة الكود بزمن استجابة أقل. fugu-ultra مناسب للمهام التي تتطلب جودة أعلى مثل البحث والتحليل الأمني. التبديل بينهما يتم بتغيير حقل model.

هل يتفوق Fugu على نماذج فردية مثل Fable 5؟

تعامل مع ذلك بحذر. Fugu نظام تنسيق يمكنه استدعاء نماذج متعددة، لذلك نتائجه تعكس أداء نظام من النماذج، لا نموذجًا منفردًا فقط. للمقارنة مع نموذج فردي، راجع دليل واجهة برمجة تطبيقات Claude Fable 5.

كم تكلفة واجهة Sakana Fugu؟

تؤكد صفحة الإصدار وجود اشتراكات وخطة دفع حسب الاستخدام، لكن الأسعار المحددة قد تتغير وتحتاج إلى تحقق مباشر من لوحة التحكم. لا تعتمد على أرقام غير مؤكدة من مصادر ثانوية.

كيف أختبر Fugu قبل دمجه في التطبيق؟

استخدم Apidog: أضف عنوان URL الأساسي من لوحة التحكم، ضع المفتاح كـ Bearer Token، أرسل جسم JSON يحتوي على model وmessages، ثم افحص الاستجابة. يمكنك متابعة الدليل الكامل هنا: اختبار واجهة برمجة تطبيقات Sakana Fugu باستخدام Apidog.

الخلاصة

Fugu يضع نظامًا متعدد الوكلاء خلف استدعاء واحد متوافق مع OpenAI. عمليًا، أصعب خطوة هي نسخ base_url الصحيح من لوحة التحكم. بعد ذلك، يمكنك استخدام عميل OpenAI الحالي، اختيار model، وتفعيل البث عند الحاجة. قبل دمجه في تطبيقك، اختبر الطلب في Apidog لتثبيت العقد والتحقق من الاستجابة. يمكنك تنزيل Apidog والبدء من طلب قابل للتكرار بدل التخمين.

Top comments (0)