API Referansı
AI Ağ Geçidi (chat ve generate)
Dağıtılmış projenizden FloopFloop'un yönetilen LLM ağ geçidini çağırın — chat completion, tek istemli üretim, akışlı SSE, otomatik model yönlendirme.
Son güncelleme:
AI Ağ Geçidi
AI Ağ Geçidi, dağıtılmış FloopFloop projenizin herhangi bir üçüncü taraf kimlik bilgisi tutmanıza gerek kalmadan yönetilen bir LLM uç noktasını çağırmasını sağlar. FloopFloop isteği doğru sağlayıcıya yönlendirir, yeniden deneme ve devre kesici mekanizmalarını yönetir, proje sahibinin kredilerinden düşer ve kullanımı pano için kaydeder.
Bu, FloopFloop üzerinde oluşturduğunuz projelerdeki AI özelliklerini güçlendiren mekanizmadır. Projenizin sunucu taraflı kodundan doğrudan çağırabilirsiniz.
Çoğu projenin bu ham HTTP API'sini kullanmasına gerek yoktur.Her oluşturulan proje, aşağıda belgelenen her şeyi saran@floopfloop/aiSDK'sı ile birlikte gelir:
import { FloopAI } from "@floopfloop/ai";
const ai = new FloopAI({ apiKey: process.env.FLOOPFLOOP_AI_KEY! });
const reply = await ai.chat({ messages, model: "smart" });Bu referansı, ağ geçidini bir FloopFloop projesi dışından (özel bir arka uç, bir hata ayıklama betiği veya Node dışı bir çalışma ortamı) çağırmanız gerektiğinde ya da özel bir istemci için tam kablo biçimini bilmek istediğinizde kullanın.
Kimlik Doğrulama: proje AI anahtarları
Ağ geçidi, API'nin geri kalanında kullanılan kullanıcı düzeyiflp_ anahtarlarından ayrı olarak flp_sk_önekiyle proje kapsamlı bir anahtar kullanır. Proje başına bir aktif anahtar bulunur ve proje oluşturulurken otomatik olarak sağlanır.
- Anahtarınızı panodaki Project settings → AIbölümünde bulun veya döndürün. Döndürme işlemi yeni bir
flp_sk_değeri oluşturur, eskisini iptal eder ve çalışan projenin onu alması için yeniden dağıtım tetikler. - FloopFloop, aktif anahtarı
FLOOPFLOOP_AI_KEYortam değişkeni olarak projenizin derleme paketine yerleştirir; böylece sunucu taraflı kod, gizli bilgi gidiş dönüşü olmadanprocess.env.FLOOPFLOOP_AI_KEYaracılığıyla okuyabilir. - Tüm istekler standart Bearer şemasını kullanır:
Authorization: Bearer flp_sk_… - Yalnızca sunucu tarafı.Anahtarı istemci taraflı koda asla yerleştirmeyin — sayfa kaynağına erişimi olan herkes projenin kredilerini tüketebilir.
Sohbet tamamlamaları
POST /api/v1/ai/chatYapılandırılmış mesaj listesiyle OpenAI/Anthropic tarzı sohbet.
İstek gövdesi:
{
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Summarise this in one sentence: ..." }
],
"model": "auto", // optional alias; default "auto" picks the best fit
"system": "...", // optional, alternative to a system role message
"temperature": 0.7, // optional, 0-2
"max_tokens": 1024, // optional, clamped to plan limit
"stream": false // optional, default false (see streaming below)
}Yanıt (200, akışsız):
{
"content": "...",
"model": "auto",
"usage": {
"input_tokens": 123,
"output_tokens": 45,
"total_tokens": 168,
"credits_used": 0.21,
"credits_remaining": 4837.79
},
"finishReason": "end_turn"
}model değeri "auto" olduğunda, ağ geçidi istek karmaşıklığını sınıflandırır ve uygun boyutta bir model seçer. Desteklenen diğer takma adlar şunlardır:
| Alias | Use case |
|---|---|
"auto" | Varsayılan — platform istek karmaşıklığına göre seçer |
"fast" | Basit görevler, düşük gecikme (çeviriler, özetler, sınıflandırma) |
"smart" | Karmaşık görevler (kod oluşturma, analiz, akıl yürütme) |
"reason" | Çok adımlı akıl yürütme, planlama, derin analiz (genişletilmiş düşünme) |
Bir takma ada sabitlemek, sağlayıcı model kimliğini doğrudan kodlamaktan tercih edilir — platform, sağlayıcılar gelip gittikçe takma adlar üzerinden yeniden yönlendirir; doğrudan kodlanmış bir kimlik ise o model yukarı akışta kullanımdan kaldırıldığında başarısız olmaya başlar.
Tek istemli üretim
POST /api/v1/ai/generate/chat ile aynı model yönlendirmesi, ancak mesaj dizisi yerine tek bir düz metin prompt alır. Tamamlama tarzı kullanım durumları için uygundur.
{
"prompt": "Write a haiku about the moon", // required, ≤ 500_000 chars
"system": "...", // optional
"model": "auto", // optional
"temperature": 0.7, // optional
"max_tokens": 1024, // optional
"stream": false // optional
}Yanıt şekli /chat ile aynıdır.
Akış (SSE)
Her iki uç noktada da "stream": true geçirerektext/event-stream yanıtı alın. Her kare, birdata: satırında JSON biçimindedir:
data: {"text": "Once "}
data: {"text": "upon "}
data: {"text": "a time"}
data: {"usage": { "input_tokens": 14, "output_tokens": 47, "total_tokens": 61, "credits_used": 0.07, "credits_remaining": 4837.93 }, "finishReason": "end_turn"}
data: [DONE]Son usage karesi, çağıranların ayrı bir istek olmadan maliyeti kaydedebilmesi için [DONE]'dan önce gönderilir. Yukarı akış akış ortasında hata verirse akışdata: {"error": "..."} ardından [DONE]yayınlar — üretilmiş token'lar yine de faturalandırılır.
Gömme (henüz mevcut değil)
POST /api/v1/ai/embedŞu an 501 NOT_IMPLEMENTEDdöndürür. Uç nokta, SDK'ların ağ geçidi yayınlanmadan önce metodu taslak olarak ekleyebilmesi için ayrılmıştır; henüz buna bağımlı olmayın.
Sınırlar ve bütçeler
Her proje AI anahtarı, kredi bakiyesinin üzerinde iki katmanlı kısıtlamaya sahiptir:
- Dakika başına istek—Project settings → AI bölümünde yapılandırılabilir, varsayılan 10 RPM. Aşım
429 RATE_LIMITEDdöndürür ve birRetry-Afterbaşlığı içerir. - Günlük token bütçesi— UTC gece yarısında sıfırlanır, varsayılan günde 10 000 token. Aşım
429 BUDGET_EXCEEDEDdöndürür. - İstek başına girdi boyutu, planın bağlam sınırıyla kısıtlanmıştır. Büyük boyutlu girdiler, mesajda sınırı belirterek
400 INPUT_TOO_LARGEdöndürür.
Bunların üzerine, her çağrı modelin yapılandırılmış oranında (girdi + çıktı) token başına fiyatlandırılmış kredi düşer. Proje sahibinin kredi bakiyesi sıfıra ulaştığında istekler402 INSUFFICIENT_CREDITS döndürür.
Ağ geçidine özgü hata kodları
| HTTP | Code | Meaning |
|---|---|---|
| 400 | INVALID_BODY | Gövde geçerli JSON değil |
| 400 | VALIDATION_ERROR | Alan eksik, yanlış türde veya aralık dışı |
| 400 | INPUT_TOO_LARGE | Tahmini girdi token sayısı plan sınırını aşıyor |
| 400 | INVALID_MODEL | Bilinmeyen model takma adı |
| 402 | INSUFFICIENT_CREDITS | Proje sahibinin kredisi tükendi |
| 429 | RATE_LIMITED | Anahtar başına RPM aşıldı |
| 429 | BUDGET_EXCEEDED | Günlük token bütçesi tükendi |
| 501 | NOT_IMPLEMENTED | Uç nokta ayrıldı (şu an yalnızca embed) |
| 502 | PROVIDER_ERROR | Yukarı akış LLM sağlayıcısı başarısız oldu; daha sonra yeniden deneyin |
| 503 | SERVICE_UNAVAILABLE | Tüm sağlayıcılar tetiklendi; Retry-After: 60 |
Her ağ geçidi yanıtı — başarı veya başarısızlık — birX-Request-Id başlığı taşır. Sorunları bildirirken bunu belirtin; böylece destek ekibi izi proje başına AI kullanım günlüğünde bulabilir.