لاختبار واجهة برمجة تطبيقات Sakana Fugu داخل Apidog، أنشئ طلب POST جديدًا إلى مسار chat/completions المتوافق مع OpenAI، أضف ترويسة Authorization: Bearer بمفتاحك، ثم أرسل حمولة JSON تستخدم النموذج fugu أو fugu-ultra. بما أن Fugu يقدم نقطة نهاية واحدة متوافقة مع OpenAI، يمكنك اختبارها بنفس نمط Chat Completions دون تبديل SDK. يمنحك Apidog مكانًا واحدًا لحفظ المتغيرات، تشغيل الطلبات، فحص SSE، قراءة usage، ومقارنة زمن الاستجابة بين النوع المتوازن وUltra.
إذا كنت تريد مسار التكامل بالكود بدل الاختبار اليدوي والمراقبة، فراجع الدليل المصاحب لاستخدام واجهة برمجة تطبيقات Sakana Fugu. هذه المقالة تركز فقط على إعداد Fugu وتشغيله داخل Apidog.
ما الذي تختبره فعليًا مع Fugu
Fugu ليس نموذج دردشة تقليديًا. وفقًا لـ Sakana، هو نظام تنسيق متعدد الوكلاء يظهر لك كنموذج واحد خلف واجهة API واحدة. يقرر Fugu داخليًا هل يجيب مباشرة أم ينسق عدة نماذج لغوية، بما في ذلك حالات تكرارية منه، ثم يعيد لك استجابة واحدة.
لخلفية أوسع عن الفكرة، راجع شرح ماهية Sakana Fugu.
هذا يؤثر على طريقة الاختبار. في Apidog لا تقيس النص الناتج فقط، بل تراقب أيضًا:
- زمن الاستجابة: هل رد النموذج بسرعة أم احتاج قفزة تنسيق؟
-
usage: كم رمزًا استخدمه الطلب الرئيسي؟ - سلوك التدفق SSE: متى وصلت أول دلتا؟ وهل كان هناك انتظار طويل قبل بدء الرموز؟
- الفرق بين
fuguوfugu-ultraعند استخدام نفس المطالبة.
النوعان الأساسيان هما:
- Fugu: النوع المتوازن منخفض زمن الاستجابة، مناسب للبرمجة اليومية، مراجعة الكود، روبوتات الدردشة، والخدمات التفاعلية.
- Fugu Ultra: موجه لأقصى جودة إجابة، مثل أبحاث الذكاء الاصطناعي، استنساخ الأوراق البحثية، تحليل الأمن السيبراني، والبحث في الأدبيات أو براءات الاختراع.
ملاحظة: اسم "Fugu Mini" كان مستخدمًا في بعض النسخ التجريبية أو التغطيات المبكرة. صفحة الإصدار تستخدم "Fugu" و"Fugu Ultra"، لذلك استخدم هذه الأسماء عند إعداد الاختبارات.
المتطلبات قبل البدء
تحتاج إلى:
- حساب في console.sakana.ai.
- مفتاح API من وحدة Sakana.
- عنوان URL الأساسي الخاص بـ Fugu من نفس الوحدة.
- مشروع في Apidog.
اعتبارًا من 2026-06-22، لم تنشر Sakana عنوان URL الأساسي في صفحة عامة. لا تخمنه. انسخه من وحدة التحكم واستخدمه كمتغير بيئة. في الأمثلة التالية، استبدل:
<YOUR_FUGU_BASE_URL_FROM_CONSOLE>
بالقيمة التي تظهر لك داخل وحدة Sakana.
إعداد بيئة Fugu في Apidog
افتح Apidog، أنشئ مشروعًا جديدًا، ثم أنشئ بيئة باسم مثل:
Fugu Prod
أضف متغيرين:
| المتغير | القيمة |
|---|---|
fugu_base_url |
عنوان URL الأساسي من وحدة Sakana |
fugu_key |
مفتاح API الخاص بك |
بهذا الشكل يصبح الطلب قابلًا لإعادة الاستخدام:
{{fugu_base_url}}/chat/completions
وتصبح ترويسة المصادقة:
Bearer {{fugu_key}}
هذا يمنع لصق الأسرار داخل الطلبات، ويسمح لك بالتبديل بين بيئة مرحلية وإنتاجية من قائمة واحدة. النمط مشابه لاستخدام عنوان URL أساسي ورمز حامل مع بوابات متوافقة مع OpenAI، كما في دليل Claude Code مع OpenRouter.
إنشاء طلب Fugu الأساسي
في Apidog، أنشئ طلب HTTP جديدًا بهذه الإعدادات:
POST {{fugu_base_url}}/chat/completions
أضف الترويسات:
Authorization: Bearer {{fugu_key}}
Content-Type: application/json
ثم ضع جسم الطلب التالي:
{
"model": "fugu",
"messages": [
{
"role": "system",
"content": "You are a concise API testing assistant."
},
{
"role": "user",
"content": "Summarize what an SSE delta is in two sentences."
}
],
"stream": false
}
أرسل الطلب. يجب أن تحصل على استجابة بنمط Chat Completions تحتوي عادةً على:
choicesmessageusage- معرف الطلب أو الإكمال حسب ما يعيده المزود
احفظ الطلب باسم:
Fugu balanced
تنسيق الحمولة يتبع مرجع OpenAI Chat Completions، وهذا هو الهدف من توافق Fugu مع OpenAI. معرّفات النموذج المذكورة عند الإطلاق هي fugu وfugu-ultra، وقد تظهر معرّفات مؤرخة مثل fugu-ultra-20260615. تحقق دائمًا من الاسم الدقيق داخل وحدة Sakana بدل تثبيت معرّف مؤرخ في الكود أو الاختبارات.
إنشاء طلب Fugu Ultra للمقارنة
انسخ طلب Fugu balanced داخل Apidog، ثم غيّر حقل model فقط:
{
"model": "fugu-ultra",
"messages": [
{
"role": "user",
"content": "Reproduce the core result of the Trinity coordinator paper in plain language and note one limitation."
}
],
"stream": false
}
احفظ النسخة باسم:
Fugu Ultra
الآن لديك طلبان محفوظان:
- نفس نقطة النهاية
- نفس الترويسات
- نفس متغيرات البيئة
- اختلاف واحد فقط: قيمة
model
هذا يجعل المقارنة نظيفة. شغّل نفس المطالبة على الطلبين، ثم قارن:
- جودة الإجابة
- زمن الاستجابة
prompt_tokenscompletion_tokenstotal_tokens
إذا أردت نمطًا أوسع لتسلسل ومقارنة عدة طلبات API، راجع دليل تنسيق اختبار API.
اختبار تدفق SSE من Fugu
لاختبار الاستجابة المتدفقة، غيّر stream إلى true:
{
"model": "fugu-ultra",
"messages": [
{
"role": "user",
"content": "Walk through a one-shot chess opening analysis, step by step."
}
],
"stream": true
}
عند تفعيل التدفق، تكون الاستجابة من نوع:
text/event-stream
وتصل كسلسلة من أجزاء data:. مثال مبسط:
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"The"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" Sicilian"},"finish_reason":null}]}
data: [DONE]
ما يجب مراقبته في Apidog:
الوقت قبل أول
delta
إذا كان هناك انتظار طويل قبل أول رمز، فقد يشير ذلك إلى أن Fugu ينسق عدة وكلاء قبل بدء الإخراج.ثبات التدفق بعد البداية
بعد بدء الرموز، راقب هل تأتي الدلتا بشكل مستمر أم على دفعات.نهاية التدفق
يجب أن ينتهي التدفق بـ:
data: [DONE]
عادةً يحمل الجزء الأول معلومات مثل role، ثم تحمل الأجزاء التالية content تدريجيًا، وأخيرًا يظهر finish_reason.
قراءة usage ومقارنة التكلفة
في الطلبات غير المتدفقة، افتح كائن usage في الاستجابة:
{
"usage": {
"prompt_tokens": 38,
"completion_tokens": 412,
"total_tokens": 450
}
}
استخدم هذه القيم للمقارنة بين fugu وfugu-ultra عند تشغيل نفس المطالبة.
لكن انتبه: Fugu هو منسق قد يستدعي نماذج أخرى خلف الكواليس. كائن usage الذي تراه هو محاسبة طلبك إلى Fugu، وليس بالضرورة تفصيلًا لكل نموذج downstream تم استخدامه داخليًا.
وفقًا لـ Sakana، التسعير مبني على طبقات اشتراك للاستخدام اليومي، إضافة إلى خطة دفع حسب الاستخدام لأعباء العمل الأثقل والمؤسسية. وللمقارنة مع نموذج واحد، تشير أسعار Anthropic المنشورة بتاريخ 2026-06-09 إلى أن Fable 5 وMythos 5 عند 10 دولارات لكل مليون رمز إدخال و50 دولارًا لكل مليون رمز إخراج. يغطي دليل Claude Fable 5 API هذه النقطة إذا أردت تشغيل خط أساس في نفس مشروع Apidog.
قياس تكلفة قفزة التنسيق في زمن الاستجابة
أفضل اختبار عملي هو إرسال نفس المطالبة إلى الطلبين المحفوظين:
- شغّل
Fugu balanced. - سجّل زمن الاستجابة و
usage. - شغّل
Fugu Ultraبنفس المطالبة. - سجّل زمن الاستجابة و
usage. - كرر الاختبار عدة مرات.
مثال مطالبة مناسبة للمقارنة:
Analyze this chess opening in one shot and explain the strategic trade-offs.
أو:
Summarize a research paper result, identify the method, and list one limitation.
عادةً يعود النوع المتوازن أسرع. وفقًا لـ Sakana، يستهدف fugu الخدمات التفاعلية منخفضة زمن الاستجابة، بينما يستهدف fugu-ultra أقصى جودة. لذلك يمكن اعتبار فرق الزمن بينهما مؤشرًا عمليًا على تكلفة التنسيق.
اختبر مهامًا تقول Sakana إن Fugu قوي فيها، مثل:
- AutoResearch
- التصميم الميكانيكي
- التنبؤ بسلاسل زمنية مالية
- تحليل الشطرنج بلقطة واحدة
وفقًا لـ Sakana، يتفوق Fugu باستمرار على Gemini 3.1 Pro وOpus 4.8 وGPT 5.5 في تلك التطبيقات المحددة. اقرأ هذا الادعاء بدقة: قد يحقق Fugu هذه النتائج عبر استدعاء نماذج أخرى وتوليف مخرجاتها. لذلك تعامل مع النتائج كأداء "نموذج من نماذج" وليس كنموذج واحد مستقل. اختبره على مطالباتك أنت قبل اتخاذ قرار إنتاجي.
اختبار توجيه الوكلاء والحوكمة
تشير صفحة إصدار Fugu إلى أن الوكلاء داخل المجموعة قابلون للتبديل، وأن الفرق قد تستبعد وكلاء محددين لأسباب تتعلق بالبيانات أو الامتثال. كما أن Fugu يقوم بتوجيه ديناميكي لتجاوز قيود المزودين.
إذا كانت وحدة Sakana لديك تعرض عناصر تحكم في مجموعة الوكلاء، يمكنك اختبار ذلك كالتالي:
- احفظ طلبًا ثابتًا في Apidog.
- شغّله مع إعدادات الوكلاء الافتراضية.
- غيّر الوكلاء المؤهلين داخل وحدة Sakana إن كانت الميزة متاحة.
- أعد تشغيل نفس الطلب.
- قارن:
- زمن الاستجابة
- جودة الإجابة
usage- اختلاف الصياغة أو الاستدلال
الأساس البحثي لهذا التوجه مدعوم بورقتين من ICLR 2026:
- Trinity، "منسق LLM متطور": منسق أقل من 20 ألف معلمة، محسّن بتطور خالٍ من المشتقات، مع أدوار مثل المفكر والعامل والمتحقق.
- Conductor، "التعلم لتنسيق الوكلاء باللغة الطبيعية": نموذج 7B مدرب بالتعلم المعزز يتعلم هيكله التواصلي ويدعي التفوق على Mixture-of-Agents بتكلفة أقل.
لا تخلط بين الورقتين. كما أن ربط أي عدد معلمات محدد بالمنتج التجاري النهائي يبقى استنتاجًا خارجيًا ما لم تؤكده Sakana رسميًا.
كيف تستخدم هذا داخل سير عمل Apidog
ميزة اختبار Fugu في Apidog بدل أمر curl واحد هي قابلية التكرار. يمكنك بناء مجموعة اختبار صغيرة مثل:
Fugu/
Fugu balanced - basic chat
Fugu Ultra - reasoning
Fugu balanced - streaming
Fugu Ultra - streaming
Fugu comparison - same prompt
ثم استخدم نفس متغيرات البيئة لكل الطلبات:
{{fugu_base_url}}
{{fugu_key}}
عند تدوير مفتاح API أو تغيير عنوان URL الأساسي أو تحديث معرّف النموذج، تعدّل المتغير مرة واحدة بدل تعديل كل طلب.
حلقة العمل العملية تصبح:
- أنشئ الطلب مرة واحدة.
- خزّن المفتاح والمضيف في البيئة.
- احفظ طلبًا لـ
fuguوآخر لـfugu-ultra. - شغّل نفس المطالبة على الاثنين.
- قارن الاستجابة، الزمن، و
usage. - فعّل
streamلمراقبة SSE والدلتا الأولى. - كرر الاختبار مع مطالبات واقعية من منتجك.
تسمية Sakana مستوحاة من كلمة "سمك" باليابانية، وFugu هو سمك المنتفخ. الاستعارة مناسبة لمنسق يجمع عدة نماذج في إجابة واحدة، لكنها تبقى استعارة وليست معيارًا. المعيار الحقيقي هو اختبار مطالباتك، زمنك، وتكلفتك داخل Apidog.
الأسئلة المتكررة
ما هو عنوان URL الأساسي الذي أستخدمه لاختبار Fugu في Apidog؟
انسخ عنوان URL الأساسي من console.sakana.ai بعد تسجيل الدخول. لم تنشر Sakana المضيف في صفحة عامة اعتبارًا من 2026-06-22، لذلك لا تخمنه. خزّنه في Apidog كمتغير بيئة واستخدمه هكذا:
{{fugu_base_url}}/chat/completions
هل أحتاج إلى SDK خاص لاستدعاء Fugu؟
لا. يقدم Fugu نقطة نهاية متوافقة مع OpenAI، لذلك يمكن لأي عميل أو أداة تدعم تنسيق Chat Completions العمل عبر تغيير عنوان URL الأساسي والمفتاح فقط. يظهر نفس نمط إعادة التوجيه في دليل Claude Code مع OpenRouter.
كيف أختبر استجابات التدفق من Fugu؟
ضع:
"stream": true
في جسم الطلب. ستصل الاستجابة كـ text/event-stream مع أجزاء data: تحمل delta تدريجيًا، وتنتهي بـ:
data: [DONE]
يعرض Apidog تدفق SSE مباشرة حتى تتمكن من مراقبة الرموز أثناء وصولها.
ما الفرق بين Fugu وFugu Ultra؟
fugu هو النوع المتوازن منخفض زمن الاستجابة للبرمجة اليومية، المراجعة، وروبوتات الدردشة. fugu-ultra يستهدف جودة أعلى في مهام البحث، الاستدلال، استنساخ الأوراق، والتحليل الأمني. كلاهما يستخدم نفس نقطة النهاية، والفرق الأساسي في الطلب هو قيمة model.
لماذا Fugu Ultra أبطأ من النوع المتوازن؟
زمن الاستجابة الإضافي غالبًا يمثل قفزة التنسيق. وفقًا لـ Sakana، يمكن لـ Fugu الإجابة مباشرة أو تنسيق فريق من النماذج. تميل Ultra إلى تنسيق أعمق من أجل الجودة، لذلك قد ترى تأخيرًا أطول قبل أول رمز أو قبل اكتمال الاستجابة.
هل انتصارات Fugu في المعايير هي نتائج نموذج واحد؟
لا بالضرورة. Fugu منسق يستدعي نماذج أخرى، بما في ذلك نفسه بشكل تكراري. لذلك نتيجة تقول إنها "تهزم Opus 4.8" قد تكون نتيجة تنسيق وتوليف مخرجات عدة نماذج، وليست انتصار نموذج واحد مستقل. اختبره على مطالباتك الخاصة قبل الاعتماد عليه في الإنتاج.


Top comments (0)