Entegrasyon rehberi · 2026-09-11
Sakana Fugu Max API kullanımı: LLMTR ile ilk istek
LLMTR üzerinden Sakana Fugu Max modeline ilk isteğinizi gönderin: Chat Completions ve Responses örnekleri, reasoning effort seçimi, tool calling, yapılandırılmış çıktı, görsel girdi ve token kullanımının okunması.
Hazırlık
Fugu Max, LLMTR üzerinde sakana/fugu-max kimliğiyle çağrılır ve OpenAI uyumlu iki endpoint üzerinden çalışır: /v1/chat/completions ve /v1/responses. Mevcut OpenAI istemcinizi koruyabilirsiniz; değişen tipik olarak yalnızca base URL ve model kimliğidir.
Kredisi bulunan bir hesap, bir LLMTR API anahtarı ve servis origin adresi gerekir. Anahtarı işlem ortamında LLMTR_API_KEY değişkeninde saklayın; kaynak koda, sürüm kontrolüne veya tarayıcı JavaScript koduna yazmayın. Aşağıdaki örnekler LLMTR_BASE_URL ve LLMTR_API_KEY değişkenlerinin tanımlı olduğunu varsayar.
İlk istek: Chat Completions
Hassas veri içermeyen küçük bir görevle başlayın. Model kimliğine eklenen :high eki, istenen reasoning seviyesini açıkça görünür kılar.
LLMTR Chat Completions — ortam değişkenleri tanımlı olmalıdır
curl --fail-with-body "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $LLMTR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sakana/fugu-max:high",
"messages": [
{ "role": "user", "content": "Review this service for concurrency risks." }
],
"max_tokens": 1200
}'
Reasoning effort seçimi
Fugu Max yalnızca iki reasoning seviyesi kabul eder: high ve xhigh. low, medium, minimal ve none bu modelde geçerli değildir ve 400 ile reddedilir. max ise ayrı bir seviye değil, xhigh için uyumluluk alias'ıdır.
Ayarı belirtmek için tek bir yol seçin. Birden fazla biçim gönderilirse LLMTR'nin belgelenen önceliği reasoning_effort, ardından reasoning.effort, ardından model ekidir; yani eski bir açık ayar, yeni değiştirdiğiniz eki geçersiz kılabilir.
| Seviye | Model eki | Not |
|---|---|---|
| high | :high | Derin reasoning |
| xhigh | :xhigh | En yüksek seviye |
| max | :max | xhigh için uyumluluk alias'ı; ayrı bir seviye değildir |
Tool calling
Fonksiyon çağrısı desteklenir ve tools ile tool_choice alanları OpenAI ile aynı şekilde kullanılır. Bu, 11 Eylül 2026'da tool_choice: required ile denendi ve biçimli bir tool_calls dizisi döndü.
Çok ajanlı bir modelde araç çağrısının döndüğü an, orkestratörün ajanlarla konuşmasını bitirdiği andır; yani araç sonucunu geri gönderdiğinizde ikinci bir tur başlar ve o tur da ücretlendirilir. Araç döngüsüne uygulamanızda bir üst sınır koyun.
Chat Completions gövdesi — fonksiyon çağrısı
{
"model": "sakana/fugu-max",
"messages": [{ "role": "user", "content": "What is the weather in Istanbul?" }],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}
],
"tool_choice": "auto"
}
Yapılandırılmış çıktı ve görsel girdi
Fugu Max hem json_schema hem json_object destekler ve strict şemada tam olarak istenen nesneyi döndürür. Bu, Fugu Ultra'dan ayrıştığı noktadır: Fugu Ultra json_object isteğini hata vermeden kabul eder ama yanıtı kod bloğu içine alabilir, yani doğrudan ayrıştırılamaz. Fugu Ultra'da yapılandırılmış çıktı için json_schema kullanın.
Görsel girdi her iki modelde de kabul edilir; Chat Completions tarafında OpenAI uyumlu image_url parçası kullanılır. Aşağıdaki örnek ikisini birleştirir: bir ekran görüntüsünden şemaya uygun bir nesne çıkarır.
Chat Completions gövdesi — görsel girdi ve strict json_schema
{
"model": "sakana/fugu-max",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Extract the error code and the failing step." },
{
"type": "image_url",
"image_url": { "url": "data:image/png;base64,<base64>" }
}
]
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "incident",
"strict": true,
"schema": {
"type": "object",
"properties": {
"error_code": { "type": "string" },
"failing_step": { "type": "string" }
},
"required": ["error_code", "failing_step"],
"additionalProperties": false
}
}
}
}
Token kullanımını okuyun
Bir isteğin token kırılımını en ayrıntılı gösteren yol /v1/responses yanıtıdır. Chat Completions yanıtındaki usage bloğu OpenAI şekline sadık kalır ve orkestrasyon alanlarını taşımaz; faturalama iki yolda da aynıdır, değişen yalnızca görünürlüktür.
Fugu Max'te orkestrasyon alanları sıfır döner, çünkü model ajan dağıtımını doğrudan input_tokens içine katlar. Fugu Ultra'da aynı alanlar sıfırın üzerinde döner ve maliyet hesabına ayrıca eklenmelidir. Aşağıdaki gövde bir Fugu Max yanıtının tipik kırılımını gösteriyor.
LLMTR Responses — kullanım değerlerini döndüren istek
curl --fail-with-body "$LLMTR_BASE_URL/v1/responses" \
-H "Authorization: Bearer $LLMTR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sakana/fugu-max",
"input": "Summarise the trade-offs of this migration plan.",
"reasoning": { "effort": "xhigh" },
"max_output_tokens": 2048
}'
Yanıttaki usage bloğu
Dönen kullanım bloğunda dikkat edilecek dört alan vardır: input_tokens, output_tokens, input_tokens_details.cached_tokens ve orkestrasyon alanları. Maliyeti bu alanlardan hesaplayın, total_tokens değerinden değil.
Hata durumlarında isteği değiştirmeden tekrar göndermeyin. Kimlik doğrulama hatasında anahtarı ve servis origin adresini, yetersiz kredide hesap bakiyesini, geçersiz parametrede ise gövdeyi kontrol edin. Her tekrar deneme yeni ücretli iş üretebileceği için uygulamanızda sınırlı bir tekrar politikası tanımlayın.
Responses yanıtı — Fugu Max kullanım kırılımı
{
"usage": {
"input_tokens": 161,
"output_tokens": 361,
"total_tokens": 522,
"input_tokens_details": {
"cached_tokens": 0,
"orchestration_input_tokens": 0,
"orchestration_input_cached_tokens": 0
},
"output_tokens_details": {
"orchestration_output_tokens": 0
}
}
}
Hacmi büyütmeden önce
Trafiği artırmadan önce temsilî bir çıktı kümesini kabul ölçütlerinizle karşılaştırın ve gerçek token kullanımını inceleyin. Model kimliğini ve reasoning ayarını açık tutun ki yapılandırma daha sonra yeniden kurulabilsin.
Uzun ve çok adımlı problemlerde kalite yeterli gelmiyorsa sakana/fugu-ultra satırına geçmeden önce maliyet farkını hesaplayın: giriş 2,5 kat, çıkış 5 kat daha pahalıdır ve orkestrasyon token'ları ayrıca faturalanır.
LLMTR üzerinden Sakana Fugu Max ile ilk istek
Bir LLMTR hesabıyla Sakana Fugu Max modeline ilk OpenAI uyumlu isteği göndermek ve dönen kullanım değerlerini doğrulamak için izlenecek adımlar.
- API anahtarı oluşturun. LLMTR panelinden bir API anahtarı oluşturun ve anahtarı işlem ortamında LLMTR_API_KEY değişkeninde saklayın. Anahtarı kaynak koda veya sürüm kontrolüne yazmayın.
- Servis adresini tanımlayın. LLMTR_BASE_URL değişkenini LLMTR servis origin adresi olarak tanımlayın. Mevcut OpenAI istemcinizi koruyup yalnızca base URL ve model kimliğini değiştirin.
- Modeli ve reasoning seviyesini seçin. Model kimliği olarak sakana/fugu-max kullanın. Reasoning seviyesi olarak high veya xhigh seçin; low, medium ve none bu modelde geçerli değildir.
- İlk isteği gönderin. Hassas veri içermeyen küçük bir görevle /v1/chat/completions veya /v1/responses ucuna istek gönderin ve açık bir çıktı bütçesi belirleyin.
- Kullanım değerlerini doğrulayın. Yanıttaki usage bloğunda input_tokens, output_tokens, cached_tokens ve orkestrasyon alanlarını okuyun. Maliyeti bu alanlardan hesaplayın, total_tokens değerinden değil.
Sık sorulan sorular
Mevcut OpenAI SDK kodumu değiştirmem gerekir mi?
Genellikle hayır. İstemciyi koruyup base URL ve model kimliğini değiştirmek yeterlidir. Fugu Max hem /v1/chat/completions hem /v1/responses uçlarında çalışır.
Fugu Max hangi reasoning seviyelerini kabul ediyor?
Yalnızca high ve xhigh. max, xhigh için bir alias'tır. low, medium, minimal ve none bu modelde geçerli değildir ve 400 ile reddedilir.
Fugu Max ile JSON çıktı alabilir miyim?
Evet. Fugu Max hem json_object hem strict json_schema destekler ve düz JSON döndürür. Fugu Ultra'da yalnızca json_schema güvenilirdir.
Orkestrasyon token'larını nerede görebilirim?
/v1/responses yanıtındaki input_tokens_details ve output_tokens_details alanlarında. Chat Completions yanıtı OpenAI şekline sadık kaldığı için bu alanları taşımaz.