Kısa cevap: jev-1.13 metin üretmez. Bir metin parçasını ve bir dizi adlandırılmış soruyu https://aihubmix.com/v1/systemone adresine POST edersiniz ve sorularınıza göre anahtarlanmış yazılı cevaplar alırsınız — bir kategori, bir puan veya bir olasılık. Parçalamaya gerek yok. Aşağıda çalışan bir istek, tam yanıt formatı ve sessizce doğruluğunuzu kaybettirecek bir tasarım hatası bulunmaktadır.
Jev'in ne için kullanıldığı
Bir yargı gerektiğinde kullanın, bir paragrafa değil: bir destek talebini yönlendirmek, ciddiyet puanı vermek, aciliyeti işaretlemek, içerik kapatmak. Model sayfası bunu açıkça belirtir — "Metin üretimi yok, parçalanacak bir şey yok."
Açıklamalar, özetler veya herhangi bir serbest biçim çıktısı gerektiğinde bunun yerine normal bir sohbet modelini kullanın. jev bunları üretemez.
Başlamadan önce
- [ ] Python 3 yüklü (standart kütüphane yeterlidir)
- [ ] Bir AiHubMix hesabı ve API anahtarı
- [ ] Anahtar
AIHUBMIX_API_KEYolarak dışa aktarılmış, kaynakta asla sabit kodlanmamış
Bir OpenAI SDK'sına, LangChain'e veya requests paketine ihtiyacınız yok.
Adım 1 — Uç noktayı bil
POST https://aihubmix.com/v1/systemone
Authorization: Bearer YOUR_KEY
Content-Type: application/json
Bu model spesifik bir yoldur, değil /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ı bir istekte serbestçe karıştırabilirsiniz:
| Tür | Ne için kullanılır | Siz sağlarsınız |
|---|---|---|
choice | Bir kategori seçmek | criteria bir dict olarak: etiket → tanım |
score | Sıralı bir ölçekte puanlama | criteria bir liste olarak, en düşükten en yükseğe |
noul | Evet/hayır yargısı | başka bir şey yok instructions |
Adım 3 — İsteği oluşturun
state yargılanacak metindir. questions anahtarları, icat ettiğiniz isimlerdir; yanıt aynı isimleri kullanır.
payload = {
"model": "jev-1.13",
"state": "Merhaba, 3 gündür Stripe hesabımı bağlamaya çalışıyorum "
"ve sürekli başarısız oluyor. Satış kaybediyorum. Lütfen acil yardım edin.",
"questions": {
"department": {
"type": "choice",
"instructions": "Bu durumu hangi ekip ele almalı",
"criteria": {
"billing": "Ödeme veya abonelik sorunları",
"technical": "Hata veya entegrasyon problemleri",
"sales": "Fiyatlandırma veya hesap soruları",
},
},
"frustration": {
"type": "score",
"instructions": "Müşterinin ne kadar sinirli göründüğü",
"criteria": [
"Sakin, sadece gerçekleri belirtiyor",
"Sinirli ama nazik",
"Çok öfkeli, sert bir dil kullanıyor",
],
},
"is_urgent": {
"type": "noul",
"instructions": "Mesaj aciliyet veya zaman hassasiyeti taşıyor",
},
},
}
Adım 4 — Standart kütüphane ile 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 yapısını bir fonksiyon içinde tutun. Modül seviyesinde oluşturup gönderirseniz, dosyayı içe aktarmak çağrıyı yeniden tetikler ve token harcar.
Adım 5 — Cevapları okuyun
Her cevap, değerini kendi type anahtarı altında saklar, bu nedenle tek bir erişimci tüm üçünü kapsar:
data = ask(payload)
for name, ans in data["answers"].items():
kind = ans["type"]
print(name, kind, ans[kind], ans.get("confidence"))
print("kullanım:", 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ü, yararlı alanları gizler. Bir score cevabının ham JSON'u:
{
"type": "score",
"score": 1,
"legend": {"0": "Sakin, sadece gerçekleri belirtiyor", "1": "Sinirli ama nazik", "2": "Çok öfkeli, sert bir dil kullanıyor"},
"probabilities": {"0": 0, "1": 1, "2": 0},
"confidence": 1
}
legendindeksi kendi kelimelerinize geri eşler — tam sayı kendini tanımlar, bu nedenle kodunuzda bir arama tablosuna ihtiyacınız yok.probabilitiestam dağılımı verir, bu da yakın bir eşitliği tespit etmek için yararlıdır.noulhiçbirconfidencealanına sahip değildir. Olasılığı sinyaldir.
Üst düzey ayrıca usage, id, provider (TypeSafe), ve çözülmüş arka uç sürümü typesafe/jev-1.13-20260917 gönderir.
Sizi doğruluk kaybına uğratan hata
Yukarıdaki istekte, department billing değerini 0.51 güvenilirliği ile döndürdü. Aynı isteği tekrarlamak 0.38 güvenilirliği ile aynı etiketi döndürdü — cevap kararlıydı, belirtilen kesinlik değeri değildi.
Sebep kriterlerde, modelde değil. billing "Ödeme veya abonelik sorunları" ve technical "Hata veya entegrasyon problemleri." Başarısız olan bir Stripe entegrasyonu gerçekten her ikisine de uyar. Model, şemaya yazılmış bir belirsizliği raporluyordu.
Üretim öncesi iki kural:
-
choicekriterlerini karşılıklı olarak dışlayıcı şekilde yazın. Eğer bir insan iki etiket arasında tereddüt ederse, model de eder. - Düşük güvenilirlik sonuçlarını kabul etmek yerine bir insan kuyruğuna yönlendirmek için bir güvenilirlik eşiği belirleyin. Belirsizliği kabul eden bir model, onu gizleyen bir modelden daha değerlidir.
Ön lansman kontrol listesi
- [ ] Anahtar ortamdan yüklendi veya VCS'nizin göz ardı ettiği bir
600-mod dosyasından - [ ]
choicekriterleri örtüşme açısından gözden geçirildi - [ ] Güvenilirlik eşiği tanımlandı, altında bir geri dönüş yolu ile
- [ ]
noulcevapları ayrı olarak ele alındı — bunlarconfidencetaşımıyor - [ ] Kullanılmayan sorular kaldırıldı (3 soru 424 giriş tokeni, 2 soru 355 token harcıyor)
- [ ] Ham gövde ile birlikte kullanılmayan 2xx dışı yanıtlar kaydedildi
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. Sadece tanımladığınız yazılı sorulara yanıt verir.
Her istekte kaç soru var? Doğrulanmış testler iki ve üç soru kullandı. Her soru giriş ve çıkış tokeni ekler, bu nedenle yalnızca üzerinde işlem yapacağınız soruları dahil edin.
Bir sürüm takma adı var mı? Model sayfası jev-latest takma adını jev-1.13 ile birlikte listeler. Tekrar üretilebilirlik önemliyse, açık sürümü sabitleyin.
Bu ne kadara mal oluyor? Model sayfası $0.0462 / M giriş tokenleri ve $0 / M çıkış tokenleri yayınlar. Bunlar satıcı rakamlarıdır — bütçelemeden önce mevcut fiyatlandırmayı doğrulayın.
Bağlam penceresi nedir? Model sayfası tutarsızdır: başlıkta 64K, sağlayıcı tablosunda 32K. Herhangi birine güvenmeden önce kendi en uzun girişinizi doğrulayın.
Bu kılavuzun kapsamı
Yukarıdaki her şey, tek bir girdi ile üç canlı çağrı ile doğrulandı. Gecikme, toplama, verim veya örneğe benzemeyen girdiler üzerindeki davranışları kapsamaz. Güvenilirlik kayması, ölçülen bir hata oranı değil, tekrarlanan bir gözlemdir — bir eşiği ayarlamadan önce kendi verilerinizde bunu tekrarlayın.
AiHubMix'te başlayın
jev-1.13 AiHubMix aracılığıyla mevcuttur ve model sayfası bu eğitimin referans aldığı her şeyi taşır: /v1/systemone uç noktası, üç soru türü ve bunların criteria formatları, tam yanıt alanları ve $0.0462 / M giriş tokenleri ile $0 / M çıkış tokenlerinin yayınlanan fiyatlandırması. Takma ad olan jev-latest en yeni sürüme karşılık gelir, böylece 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ı oluşturun
- Adım 3'teki isteği ve Adım 4'teki
ask()fonksiyonunu kopyalayın statedeğerini kendi kuyruğunuzdan gerçek bir kayıt ile değiştirin- Sonucu, o kaydı bugün nasıl sınıflandırıyorsanız ona göre karşılaştırın
Bu kılavuz faydalı olduysa, yapılandırılmış çıktı modelleri ve sınıflandırma boru hatları hakkında gelecekteki gönderiler için abone olun.



