Yapılandırılmış Kararlar (System One)
Bir dil modelinden kodunuzun dallanacağı bir karar istediğinizde iki iş birden yaparsınız: modele cevabı üretmesini söylersiniz, sonra ürettiği metni ayrıştırıp kendi tiplerinize geri çevirirsiniz. Ayrıştırma adımı kırılgandır — model biçimi değiştirir, açıklama ekler, JSON'u yarıda keser.
System One modelleri bu adımı ortadan kaldırır. Bir state (değerlendirilecek içerik) ve tanımladığınız tiplenmiş questions alırlar, her soru için yapılandırılmış bir answer döndürürler. Serbest metin üretilmez, ayrıştırılacak bir şey yoktur. Her yanıtla birlikte olasılık dağılımı gelir, yani eşiği kodunuzda siz belirlersiniz.
| Model | Bağlam | Giriş / Çıkış ($/1M token) |
|---|---|---|
typesafe/jev |
32.000 | 0,042 / 0 |
upstage/solar-decide |
524.288 | 0,10 / 0 |
fastino/glide |
40.000 | 0,15 / 0 |
greenpt/metis |
32.768 | 0,147783 / 0 |
perplexity/pplx-decider-v1.1-27b |
262.144 | 0,02 / 0 |
perplexity/pplx-decider-v1-27b |
262.144 | 0,02 / 0 |
llmtr/leyla |
1.024 | 0,03 / 0 |
llmtr/leyla-english |
512 | 0,03 / 0 |
llmtr/leyla-typed-decisions |
1.024 | 0,03 / 0 |
nace/drex-v2.0 |
131.072 | 0,06 / 0 |
scaledown/classify-free |
131.072 | 0 / 0 |
Leyla modelleri Türkiye'de barındırılır; istek içeriği Türkiye dışına çıkmaz. llmtr/leyla Türkçe dahil 100'den fazla dilde çalışır. llmtr/leyla-english yalnızca İngilizce metin içindir. llmtr/leyla-typed-decisions fatura, güvenlik olayı, müşteri hizmetleri kaydı ve agent trace üzerinde İngilizce karar içindir.
fastino/glide gönderdiğiniz istek ve yanıtları saklar ve modelleri geliştirmek için kullanabilir; kişisel veri içeren durumlar için Leyla modellerini tercih edin.
greenpt/metis genel amaçlı bir karar modelidir; sağlayıcının beyanına göre istekler Avrupa Birliği içinde işlenir. Çağırabilmek için hesabınızın GreenPT veri aktarım onayını vermiş olması gerekir; onay yoksa istek 403 provider_consent_required döner (Veri aktarım onayı).
Perplexity Decider modelleri metnin yanında görsel de değerlendirir (Görsel girdi). perplexity/pplx-decider-v1-27b ilk sürümdür ve ona sabitlenmiş entegrasyonlar içindir; yeni bir entegrasyon perplexity/pplx-decider-v1.1-27b ile başlayabilir.
nace/drex-v2.0, Nace'nin karar modelinin en yeni sürümüdür. Yalnızca metin okur; state içinde görsel, ses ya da PDF gönderilirse 422 provider_error döner. nace/drex-v1.5-free ve nace/drex-v1.0-free için ücretsiz dönem 13 Ekim 2026'da sona erdi; bu kimlikler 410 model_retired döner ve yerine nace/drex-v2.0'ı önerir. Drex 2.0 farklı bir sürüm olduğu için döndürdüğü olasılıklar önceki sürümlerinkinden farklı olabilir; geçerken eşiklerinizi yeniden kontrol edin.
scaledown/classify-free 20 Ekim 2026 23:59'a (TSİ) kadar ücretsizdir; ücretsiz kullanım için ayrılan kota daha önce biterse o tarihten önce kapanır ve hesap başına günlük ücretsiz kullanım sınırlıdır. Yalnızca metin okur; state içinde görsel ya da PDF gönderilirse 400 invalid_request döner. Yalnızca text anahtarı taşıyan bir state nesnesi ({ "text": "..." }) modele o metin olarak, başka bir nesne ya da dizi JSON metni olarak verilir. Ücretsiz dönem bittikten sonra model sayfası aynı istekle çalışan ücretli System One modellerini listeler. Ayrıntılar için ScaleDown görev modelleri sayfasına bakın.
Katalogdaki System One modellerini listelemek için:
curl -s "$LLMTR_BASE_URL/v1/models" \ | jq -r '.data[] | select(.supported_operations[] == "SYSTEM_ONE").id'curl "$LLMTR_BASE_URL/v1/systemone" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "typesafe/jev", "state": "Kartımdan iki kez çekim yapılmış, iadesini istiyorum.", "questions": { "iade_talebi": { "type": "noul", "instructions": "Müşteri iade talep ediyor mu?" }, "departman": { "type": "choice", "instructions": "Bu talebi hangi ekip karşılamalı?", "criteria": { "faturalama": "Ödeme, fatura, iade", "teknik": "Hata, kesinti, entegrasyon", "satis": "Fiyatlandırma, hesap açma" } } } }'| Alan | Zorunlu | Açıklama |
|---|---|---|
model |
Evet | System One modelinin kimliği. |
state |
Evet | Değerlendirilecek içerik. Düz metin ya da yapılandırılmış veri (nesne veya dizi). Perplexity Decider modellerinde dizi görsel de taşıyabilir. |
questions |
Evet | Anahtarlarını sizin seçtiğiniz soru haritası. Yanıtlar aynı anahtarlarla döner. |
max_budget_usd |
Hayır | İstek öncesi tahmini maliyet kontrolü. Aşağıdaki nota bakın. |
Soru anahtarları modele gönderilmez, yalnızca yanıtı eşleştirmek içindir. Sorunun tamamını instructions alanına yazın; anahtar ne kadar açıklayıcı görünürse görünsün modelin gördüğü metin değildir.
max_budget_usd istek öncesi bir kontroldür: gövdeden çıkarılan tahmini maliyet bu değeri aşarsa istek upstream'e gönderilmeden reddedilir. Kesin ücret, upstream'in bildirdiği token sayısından hesaplanır ve bu tavana göre yeniden denetlenmez; karakter başına beklenenden fazla token üreten bir girdide gerçek ücret tahmini aşabilir. Sert bir üst sınıra ihtiyacınız varsa API anahtarı başına harcama limiti kullanın.
Aynı istekteki sorular birbirinden bağımsız değerlendirilir; bir sorunun yanıtı diğerine bağlam olmaz.
Soru tipleri
Bölüm başlığı “Soru tipleri”Üçü de type ve instructions alanlarını paylaşır, criteria alanı tipe göre değişir.
Evet/hayır sorusu. Cevabın "evet" olma olasılığını 0 ile 1 arasında döndürür. criteria isteğe bağlıdır ve yalnızca iki ucun ne anlama geldiğini netleştirir.
{ "acil_mi": { "type": "noul", "instructions": "Mesaj aciliyet bildiriyor mu?", "criteria": { "true": "Açıkça zaman baskısı var", "false": "Aciliyet belirtilmemiş" } }}Choice
Bölüm başlığı “Choice”Tanımladığınız seçenekler arasından birini seçer. Seçilen seçeneği, tüm seçeneklerin olasılık dağılımını ve bir güven değeri döndürür. criteria, seçenek adını açıklamasına eşler; açıklama gerekmiyorsa değer null bırakılabilir.
Girdilerinizin listeye sığmayabileceği durumlarda diger gibi bir seçenek ekleyin; aksi halde model her zaman listedeki en yakın seçeneği döndürür.
{ "departman": { "type": "choice", "instructions": "Bu talebi hangi ekip karşılamalı?", "criteria": { "faturalama": "Ödeme, fatura, iade", "teknik": "Hata, kesinti, entegrasyon", "diger": null } }}Sıralı seviyeler boyunca bir konum döndürür. criteria en az iki seviye içeren sıralı bir dizidir. Dönen score iki seviyenin arasına düşebilir. fastino/glide farklıdır: score en olası seviyenin sırasını (0'dan başlayan tam sayı), expected_level ise seviyeler arasındaki olasılık ağırlıklı konumu verir.
{ "memnuniyetsizlik": { "type": "score", "instructions": "Müşteri ne kadar rahatsız görünüyor?", "criteria": ["Sakin", "Rahatsız ama nazik", "Çok öfkeli"] }}Evet/hayır ile seviye ölçümünü karıştırmayın. "Bu aday Python'da güçlü mü?" sorusunda 0,5 değeri, adayın orta seviyede olduğu anlamına gelmez; modelin evet ile hayıra eşit olasılık verdiği anlamına gelir. Seviye ölçmek istiyorsanız Score, kesin bir karar istiyorsanız tanımı netleştirilmiş bir Noul kullanın.
{ "model": "typesafe/jev", "answers": { "iade_talebi": { "type": "noul", "noul": 0.94 }, "departman": { "type": "choice", "choice": "faturalama", "probabilities": { "faturalama": 0.88, "teknik": 0.07, "satis": 0.05 }, "confidence": 0.85 } }, "usage": { "input_tokens": 312, "output_tokens": 61 }}answers içindeki her anahtar, istekte verdiğiniz soru anahtarıdır. Her yanıt kendi type alanını taşır, yani hangi alanları okuyacağınız bellidir: Noul için noul, Choice için choice + probabilities + confidence, Score için score + legend + probabilities + confidence (fastino/glide ayrıca expected_level).
model alanı LLMTR katalog kimliğini döndürür. Yukarıdaki token sayıları örnektir; output_tokens genellikle sıfırdan büyük döner — ücretsiz olan çıktının fiyatı, sayısı değil. Kendi token muhasebenizi kurarken bu alanı sıfır varsaymayın.
Eşik seçimi
Bölüm başlığı “Eşik seçimi”confidence, olasılık dağılımının ne kadar tepe yaptığını özetler; hangi eşikten sonra otomatik davranacağınız sizin kararınızdır. Yalnızca en olası seçeneği kullanacaksanız eşiğe ihtiyacınız yoktur, choice alanını okumak yeterlidir. Eşik, bir kararı otomatik uygulamak ile bir insana devretmek arasında ayrım yapacağınız yerlerde işe yarar.
Eşikleri ve soru metinlerini kodunuzda tek bir dosyada tutun. İnceleyen kişinin bakması gereken şey bunlardır; kod tabanına dağılmış eşik sabitleri sonradan bulunamaz.
Görsel girdi
Bölüm başlığı “Görsel girdi”perplexity/pplx-decider-v1.1-27b ve perplexity/pplx-decider-v1-27b görselleri de değerlendirir. state'i dizi olarak gönderin ve her görseli base64 veri URL'si taşıyan bir image_url parçası olarak ekleyin; metin parçaları aynı dizide yer alabilir:
{ "model": "perplexity/pplx-decider-v1.1-27b", "state": [ "İlan #881 için ürün fotoğrafı.", { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0KGgo..." } } ], "questions": { "renk": { "type": "choice", "instructions": "Fotoğraftaki kişinin tişörtü hangi renk?", "criteria": { "lacivert": null, "beyaz": null, "kirmizi": null } } }}- PNG, JPEG ve WebP veri URL'leri kabul edilir. Model adresten görsel indirmez;
httpya dahttpsadresi gönderilirse400 provider_errordöner. - Görsel giriş tokenı olarak sayılır ve her soru için yeniden sayılır. Tek bir görsel soru başına en fazla yaklaşık 2.050 token tutar.
- Görsel en fazla 2.048 adet 32 × 32 piksellik kare kadar ayrıntıyla okunur (örneğin 1440 × 1440 ya da 2048 × 1024). Daha büyük bir görseli göndermeden önce bu boyuta küçültün; sınırı aşan görselin nasıl okunacağı garanti edilmez. İstek gövdesi toplamda 24 MB ile sınırlıdır ve base64 kodlama dosyayı yaklaşık üçte bir büyütür.
Türkçe metinlerde Leyla
Bölüm başlığı “Türkçe metinlerde Leyla”Türkçe state gönderirken llmtr/leyla ile şu yazım en iyi sonucu verir:
- Noul ve Score:
instructionsalanını ve Score seviye adlarını İngilizce yazın ("Does the customer ask for a refund?"). Metnin kendisi Türkçe kalabilir. - Choice: seçenek açıklamalarını (
criteriadeğerleri) Türkçe ve kısa anahtar kelimelerle yazın ("fatura, ödeme, iade"). Uzun açıklama sonucu iyileştirmez. - Genel seçenek:
digergibi bir seçeneğin seçilmesine güvenmeyin. En yüksek olasılık düşükse (örneğin 0,6'nın altında) sonucu belirsiz sayıp insana yönlendirin. - Canlıya almadan önce: çok seçenekli sınıflandırmayı kendi gerçek örneklerinizle (en az 50-100 adet) ölçün ve eşiklerinizi buna göre belirleyin.
Metni kısa tutun: model 1.024 token bağlamla çalışır (llmtr/leyla-english 512). Bağlamı aşan metin hata döndürmez, kesilir ve kesilen kısım değerlendirilmez; karar için gereken kısmı siz seçin.
Faturalandırma
Bölüm başlığı “Faturalandırma”Ücret yalnızca giriş tokenları üzerindendir; çıkış tokenları ücretsizdir. Yanıttaki usage alanı her iki sayıyı da taşır.
typesafe/jev, greenpt/metis ve Drex modelleri durumu bir kez sayar; aynı duruma soracağınız soruları tek istekte birleştirin. upstage/solar-decide, fastino/glide, Perplexity Decider ve Leyla modelleri durumu her soru için ayrı sayar; yalnızca kullanacağınız soruları gönderin. scaledown/classify-free da durumu her soru için ayrı sayar.
Model fiyatlarına platform marjı eklenmez; marj yalnızca kredi yüklemede geçerlidir. Sağlayıcı fiyatını euro olarak yayınladığı için greenpt/metis'in tablodaki fiyatı, euro fiyatın Avrupa Merkez Bankası kuruna %8 kur payı eklenerek dolara çevrilmiş hâlidir; sağlayıcının yayınladığı fiyatla birebir aynı değildir. Ayrıntı için Faturalandırma sayfasına bakın.
Limitler
Bölüm başlığı “Limitler”LLMTR tek istekte en fazla 1.000 soru kabul eder; fazlası 400 invalid_request ile reddedilir. Modelin kendi sınırı daha düşükse aşağıdaki tablodaki değer geçerlidir: Leyla modellerinde 64'ü aşan istek 413 provider_error, Perplexity Decider modellerinde 128'i aşan istek 400 provider_error, greenpt/metis'te 32'yi aşan istek 422 provider_error, Drex modellerinde 512'yi aşan istek 400 invalid_request döner.
| Limit | typesafe/jev |
upstage/solar-decide |
fastino/glide |
greenpt/metis |
Perplexity Decider | Leyla modelleri | Drex modelleri | scaledown/classify-free |
|---|---|---|---|---|---|---|---|---|
| İstek boyutu | state ve questions birlikte 32.000 token |
state en fazla 1 MiB |
her soru state ile birlikte 40.000 token |
state, questions ve modelin sabit istemi birlikte 32.768 token |
her soru state ile birlikte 262.144 tokenın altında |
state en fazla 50.000 karakter |
state en fazla 131.072 token, her soru state ile birlikte en fazla 262.144 token; state ve questions birlikte en fazla 4 MiB |
state en fazla 131.072 token |
| İstekteki soru sayısı | 1.000 | 1.000 | 1.000 | 32 | 128 | 64 | 512 | 1.000 |
| Choice seçenek sayısı | belgelenmiş sınır yok | 2-26 | en fazla 255 | soru başına 2-255, istekte toplam en fazla 2.048 (her noul sorusu 2 sayılır) |
en fazla 255 | en fazla 100; açıklamalı seçenek için 20'ye kadar önerilir | belgelenmiş sınır yok | belgelenmiş sınır yok |
| Score seviye sayısı | en az 2 | 2-10 | 2-255 | 2-10 | 2-10 | en fazla 32 | en az 2 | 2-10 |
fastino/glide instructions alanında yalnızca metin kabul eder; nesne ya da dizi gönderilirse 422 provider_error döner.
Perplexity Decider modellerinde yanıt süresi girişin boyutuyla artar; bağlam sınırına yakın bir istek bir dakikaya yakın sürebilir. İstemci zaman aşımını en az 90 saniye yapın.
Bu uç nokta akış (streaming) desteklemez. Yanıt tek parça döner; zaten üretilen bir metin yoktur.
System One modelleri Playground'da görünmez ve sohbet uçlarında çağrılamaz; yalnızca /v1/systemone üzerinde yanıt verirler.
Hatalar
Bölüm başlığı “Hatalar”| Durum | Anlamı |
|---|---|
400 invalid_request |
İstek gövdesi şemaya uymuyor. Mesaj hangi alanın hatalı olduğunu söyler. |
403 provider_consent_required |
Hesabınız modelin sağlayıcısı için veri aktarım onayı vermedi (greenpt/metis). Onay Ayarlar sekmesinden verilir. |
404 model_not_found |
Model kimliği katalogda yok. |
410 model_retired |
Model emekliye ayrıldı; mesaj tarihi söyler. Ücretsiz Drex modellerinde ve scaledown/classify-free'de ücretsiz dönemin bittiği anlamına gelir. |
400 unsupported_operation |
Model bu uç noktayı desteklemiyor. Yanıt, modelin desteklediği uç noktaları listeler. |
400 provider_error |
Model isteği kabul etmedi. fastino/glide'da mesaj bağlam penceresinin aşıldığını söylüyorsa sorulardan biri state ile birlikte sığmıyor; state'i ya da o soruyu kısaltın. Perplexity Decider'da mesaj aşılan sınırı ya da desteklenmeyen görsel adresini söyler. |
413 provider_error |
İstek modelin soru, seçenek ya da metin uzunluğu sınırını aşıyor. İsteği küçültün. |
422 provider_error |
Soru tanımı ya da state modelin kabul etmediği bir biçimde veya modelin limitini aşıyor. Mesaj hangi alanın sorunlu olduğunu taşır. |
429 rate_limit_error |
API anahtarının istek limiti aşıldı. |
502 provider_error |
Model isteği tamamlayamadı. Perplexity Decider'da bir soru state ile birlikte 262.144 tokenı aşarsa istek yaklaşık bir dakika sonra bu hatayla döner; state'i kısaltın. |
503 model_unavailable |
Model geçici olarak yanıt veremiyor. Yanıt Retry-After başlığı taşıyorsa o süre kadar bekleyin. |
Hata biçimi için Hatalar sayfasına bakın.