Kısa cevap: jev-1.13 metin üretmez. https://aihubmix.com/v1/systemone adresine bir metin parçası ve adlandırılmış bir dizi soru gönderirsiniz; karşılığında, sorularınızın adlarıyla eşleşen tipli yanıtlar alırsınız: bir kategori, bir puan veya bir olasılık. Ayrıştırılacak bir şey yoktur. Aşağıda çalışan bir istek örneği, tam yanıt biçimi ve doğruluğunuzu sessizce düşürecek tek bir tasarım hatası yer alıyor.
Jev ne için kullanılır
Bir paragrafa değil, bir değerlendirmeye ihtiyacınız olduğunda kullanın: destek talebi yönlendirme, önem derecesi belirleme, aciliyet işaretleme, içerik filtreleme. Model sayfası bunu açıkça belirtir: "Metin üretimi yok, ayrıştırılacak bir şey yok."
Açıklama, özet veya serbest biçimli herhangi bir çıktıya ihtiyacınız varsa bunun yerine normal bir sohbet modeli kullanın. jev bu tür çıktıları üretemez.
Başlamadan önce
- [ ] Python 3 kurulu olmalı (standart kütüphane yeterlidir)
- [ ] Bir AiHubMix hesabı ve API anahtarı
- [ ] Anahtar
AIHUBMIX_API_KEYolarak dışa aktarılmış olmalı, kaynak kodda asla sabit kodlanmamalı
OpenAI SDK'sına, LangChain'e veya requests paketine ihtiyacınız yok.
Adım 1 — Uç noktayı öğrenin
POST https://aihubmix.com/v1/systemone
Authorization: Bearer YOUR_KEY
Content-Type: application/json
Bu, model için özel bir yoldur, değildir /v1/chat/completions. OpenAI uyumlu istemciler bunu çağıramaz. Düz HTTP kullanın.
Adım 2 — Soru türlerinizi seçin
Üç tür vardır ve bunları tek bir istekte serbestçe karıştırabilirsiniz:
| Tür | Kullanım amacı | Sağladığınız |
|---|---|---|
choice | Tek kategori seçimi | criteria bir sözlük olarak: etiket → tanım |
score | Sıralı bir ölçekte derecelendirme | criteria bir liste olarak, en düşükten başlayarak |
noul | Evet/hayır değerlendirmesi | instructions dışında hiçbir şey yok |
Adım 3 — İsteği oluşturun
state, değerlendirilecek metindir. questions anahtarları sizin belirlediğiniz adlardır; yanıt aynı adları kullanır.
payload = {
"model": "jev-1.13",
"state": "Hi, I have been trying to connect my Stripe account for 3 days "
"and it keeps failing. I am losing sales. Please help ASAP.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions",
},
},
"frustration": {
"type": "score",
"instructions": "How frustrated the customer appears",
"criteria": [
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language",
],
},
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity",
},
},
}
Adım 4 — Standart kütüphaneyle gönderin
import json, os, urllib.error, urllib.request
def ask(payload):
req = urllib.request.Request(
"https://aihubmix.com/v1/systemone",
data=json.dumps(payload).encode(),
headers={"Authorization": "Bearer " + os.environ["AIHUBMIX_API_KEY"],
"Content-Type": "application/json"},
method="POST",
)
try:
with urllib.request.urlopen(req, timeout=60) as r:
return json.loads(r.read())
except urllib.error.HTTPError as e:
raise SystemExit(f"HTTP {e.code}: {e.read().decode(errors='replace')[:500]}")
İstek oluşturmayı bir fonksiyonun içinde tutun. İsteği modül düzeyinde oluşturup gönderirseniz, dosyayı içe aktarmak çağrıyı yeniden tetikler ve token harcar.
Adım 5 — Yanıtları okuyun
Her yanıt değerini, type değerine karşılık gelen bir anahtar altında saklar; bu nedenle tek bir erişimci üç türün hepsini kapsar:
data = ask(payload)
for name, ans in data["answers"].items():
kind = ans["type"]
print(name, kind, ans[kind], ans.get("confidence"))
print("usage:", data.get("usage"))
Doğrulanmış çıktı:
department choice billing 0.51
frustration score 1 1
is_urgent noul 1 None
usage: {'input_tokens': 424, 'output_tokens': 73}
Adım 6 — Tam zarfı anlayın
Yazdırma döngüsü kullanışlı alanları gizler. Bir score yanıtına ait ham JSON:
{
"type": "score",
"score": 1,
"legend": {"0": "Calm, just stating facts", "1": "Frustrated but civil", "2": "Very angry, strong language"},
"probabilities": {"0": 0, "1": 1, "2": 0},
"confidence": 1
}
legend, indeksi kendi ifadelerinize geri eşler; tam sayı kendini açıklar, bu yüzden kodunuzda ayrı bir arama tablosuna ihtiyacınız yoktur.probabilitiestam dağılımı verir; neredeyse eşit olan sonuçları tespit etmek için kullanışlıdır.noulalanındaconfidencealanı yoktur. Onun sinyali olasılığıdır.
Üst düzeyde ayrıca usage, id, provider (TypeSafe) ve çözümlenmiş arka uç sürümü typesafe/jev-1.13-20260917 döner.
Doğruluğunuza mal olan hata
Yukarıdaki istekte department, 0.51 güvenle billing döndürdü. Aynı isteği tekrarladığımızda aynı etiket 0.38 ile döndü — yanıt kararlıydı, ama belirtilen kesinlik kararlı değildi.
Sebep modelde değil, kriterlerde. billing, "Ödeme veya abonelik sorunları", technical ise "Hatalar veya entegrasyon sorunları" olarak tanımlanmış. Sürekli başarısız olan bir Stripe entegrasyonu gerçekten iki kategoriye de uyar. Model, şemaya yazılmış bir belirsizliği yansıtıyordu.
Üretime almadan önce iki kural:
choicekriterlerini birbirini dışlayacak şekilde yazın. Bir insan iki etiket arasında tereddüt edecekse, model de tereddüt edecektir.- Bir güven eşiği belirleyin ve düşük güvenli sonuçları karar olarak kabul etmek yerine bir insan kuyruğuna yönlendirin. Belirsizliğini kabul eden bir model, bunu gizleyen bir modelden daha değerlidir.
Yayın öncesi kontrol listesi
- [ ] Anahtar ortamdan veya VCS'nizin yok saydığı
600modlu bir dosyadan yüklenmiş - [ ]
choicekriterleri çakışma açısından gözden geçirilmiş - [ ] Güven eşiği tanımlanmış ve altında bir yedek yol var
- [ ]
noulyanıtları ayrı olarak işleniyor —confidencetaşımazlar - [ ] Kullanılmayan sorular kaldırılmış (3 soru 424 girdi token'ı, 2 soru 355 maliyetindeydi)
- [ ] 2xx dışındaki yanıtlar ham gövdesiyle birlikte kaydediliyor
SSS
OpenAI SDK'sını kullanabilir miyim? Hayır. /v1/systemone, OpenAI uyumlu bir yol değildir.
Jev bir cümle veya özet döndürebilir mi? Hayır. Yalnızca sizin tanımladığınız tipli sorulara yanıt verir.
İstek başına kaç soru sorulabilir? Doğrulanmış testlerde iki ve üç soru kullanıldı. Her soru girdi ve çıktı token'ı ekler, bu yüzden yalnızca üzerinde işlem yapacaklarınızı dahil edin.
Bir sürüm takma adı var mı? Model sayfası, jev-1.13 ile birlikte bir jev-latest takma adını listeler. Tekrarlanabilirlik önemliyse açık sürümü sabitleyin.
Maliyeti nedir? Model sayfası girdi token'ları için $0.0462 / M, çıktı token'ları için $0 / M fiyatını yayımlar. Bunlar satıcının verileridir — bütçe yapmadan önce güncel fiyatı doğrulayın.
Bağlam penceresi nedir? Model sayfası tutarsızdır: başlıkta 64K, sağlayıcı tablosunda 32K yazar. Herhangi birine güvenmeden önce, kendi en uzun girdinizle doğrulayın.
Bu rehberin kapsamı
Yukarıdaki her şey tek bir girdi üzerinde üç canlı çağrıyla doğrulandı. Gecikme süresi, toplu işleme, verim veya örneğe benzemeyen girdilerdeki davranış kapsam dışıdır. Güven kayması yeniden üretilmiş bir gözlemdir, ölçülmüş bir hata oranı değildir — bir eşik belirlemeden önce kendi verilerinizle tekrarlayın.
AiHubMix'te başlayın
jev-1.13, AiHubMix üzerinden kullanılabilir; model sayfası bu eğitimde değinilen her şeyi içerir: /v1/systemone uç noktası, criteria biçimleriyle üç soru türü, tüm yanıt alanları ve $0.0462 / M girdi token'ı ile $0 / M çıktı token'ı olarak yayımlanan fiyat. jev-latest takma adı en yeni sürüme çözümlenir, bu yüzden sürümler değiştikçe güncel kalır.
Buradan başlayın: https://aihubmix.com/model/jev-latest
Sonraki adımlar:
- Bir AiHubMix hesabı oluşturun ve bir API anahtarı alın
- 3. Adımdaki isteği ve 4. Adımdaki
ask()fonksiyonunu kopyalayın stateyerine kendi kuyruğunuzdaki gerçek bir kaydı koyun- Sonucu, bu kaydı bugün nasıl sınıflandırdığınızla karşılaştırın
Bu rehber faydalı olduysa, yapılandırılmış çıktı veren modeller ve sınıflandırma hatları hakkındaki gelecek yazılar için abone olun.



