Neden JSON yanıtınız doğrulamayı geçemiyor
Model kod bloğunun dışına konuşma metni eklediğinde JSON ayrıştırma başarısız olur. Uncensored modeller doğal dil akışını önceliklendirir, bu nedenle ham verinin önüne veya arkasına genellikle "İşte JSON" gibi ifadeler eklerler. Bu, yalnızca nesne bekleyen sıkı parser'ları bozar.
Şu response_format parametresi {"type": "json_object"}. Bu, modelin yalnızca geçerli JSON çıktısı vermesini zorlar. Kodunuzdaki regex temizleme betiklerine olan ihtiyacı ortadan kaldırır. Ancak, modele kısıt getirildiği için her istekte daha fazla token tükettiğini unutmayın.
- Ayarla
response_formatiçinjson_objectistem yükünüzde. - Sistem promptunuzun JSON çıktısı istediğinden açıkça emin olun.
- Model kayarsa, virgül veya küçük sözdizimi hatalarını zarifçe yönetin.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Bağlam penceresi limitlerini doğru şekilde işleme
Bağlam pencereniz hem giriş hem de çıkış dahil olmak üzere toplam 100.000 token kapasitesine sahiptir. Uzun bir geçmiş gönderirseniz, maksimum çıktı uzunluğunu azaltmanız gerekir. Varsayılan maksimum çıktı, aksi belirtilmedikçe 2.048 token'dır.
Kalan token sayısını 100,000'den girdi boyutunu çıkararak hesaplayın. Rol yapma yapıyorsanız, sistem istemini kısa tutun. Sadece son konuşma dönüşlerini API isteğinde saklayın. Eski bağlam özetlenebilir veya kısaltılabilir. Bu, üretim sırasında sert limite takılmayı önler.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Uncensored modellerle fonksiyon çağırma hataları
Fonksiyon çağırma, modelin araç tanımlarını görmezden gelmesi veya geçersiz argümanlar döndürmesi durumunda başarısız olur. Uncensored modeller katı araç kullanımından ziyade yaratıcı yanıtları önceliklendirebilir. Şemanızda mevcut olmayan parametreleri uydurabilirler.
Araçlarınızı tools dizi. Kullanın tool_choice belirli bir davranışı zorlamak için. Model bir aracı çağırmayı reddederse, sistem istemindeki çelişkili talimatları kontrol edin. Araç adlarının ve açıklamalarının belirsiz olmadığını sağlayın. Entegrasyonu doğrulamak için önce basit sorgularla test edin.
- Araç adlarını ve açıklamalarını net bir şekilde belirtin.
- Kullan
tool_choiceçağrıyı kontrol etmek için. - Yürütmeden önce argümanları şemanıza karşı doğrula.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'
Akış kesintileri ve SSE işleme
Sunucu Tarafından Gönderilen Olaylar (SSE) üzerinden akış (streaming), istemci bağlantıyı koparırsa veya ağda aksaklık yaşanırsa tokenları kaybedebilir. Son chunk, token kullanım istatistiklerini içerir. Giriş ve çıktı sayılarını almak için bu chunk'ı ayrıştırmanız gerekir.
Yeniden bağlanma mantığını işleyen sağlam bir SSE istemcisi uygulayın. Her parçanın veri içerdiğinden emin olmayın. Bazı parçalar boş olabilir veya yalnızca boşluk içerebilir.Kredi bakiyenizi veya token sayaçlarınızı güncellemek için son parçayı işleyin. Bu, doğru faturalandırma ve kullanım takibini sağlar.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
NSFW çıktısını etkileyen Sıcaklık ayarları
Sıcaklık, modelin çıktısındaki rastgeleliği kontrol eder. 0.8 veya 0.9 gibi daha yüksek değerler yaratıcılığı ve öngörülemezliği artırır. 0.2 gibi daha düşük değerler çıktıyı daha belirleyici ve odaklı hale getirir. NSFW rol yapma senaryolarında daha yüksek sıcaklıklar, daha çeşitli ve yoğun yanıtlar üretir.
En uygun dengeyi bulmak için farklı değerlerle deney yapın. Çok yüksek bir sıcaklık tutarsız veya tekrarlayan metne neden olabilir. Çok düşük bir sıcaklık robotik veya soluk diyaloglara neden olabilir. İstenen tona ve tutarlılığa göre ayarlayın. Filtresiz model, daha yüksek yaratıcılık ayarlarına iyi yanıt verir.
- Yaratıcı rol yapma için 0.7-0.9 kullanın.
- Gerçekçi veya kodlama görevleri için 0.2-0.5 kullanın.
- Ayarları yaparken çıktı kalitesini izleyin.
Rol yapma üretiminde Top P ve çeşitlilik
Top P (nükleus örnekleme), modeli yalnızca olasılık kütlesinin en üst yüzdesini dikkate almaya sınırlar. Çeşitliliği kontrol etmek için sıcaklıkla çalışır. Düşük bir Top P değeri, çıktıyı daha öngörülebilir kılar. Yüksek bir değer, daha çeşitli kelime seçimlerine olanak tanır.
İnce ayarlı kontrol için Top P'yi sıcaklıkla birleştirin. Örneğin, yüksek sıcaklık ve düşük Top P, yaratıcı ancak odaklanmış metinler üretebilir. Bu, karakter sesini korurken spontane eylemlere izin vermek için kullanışlıdır. Anlatım tarzınıza uygun farklı kombinasyonları test edin.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Token limitlerini ve maliyetleri anlama
Token kullanımı ön ödemeli kredinizi doğrudan etkiler. API, milyon başına giriş tokenları için $0.15 ve milyon başına çıkış tokenları için $0.50 ücretlendirme yapar. Çıkış tokenları daha pahalıdır çünkü modelin işini temsil ederler. Akış (streaming) maliyeti değiştirmez; oluşturulan tüm tokenlar için ödersiniz.
Beklenmedik ücretlerden kaçınmak için token kullanımınızı izleyin. Son SSE chunk'ı kesin token sayısını sağlar. Bunu yerel bakiyenizi veya faturalandırma panelinizi güncellemek için kullanın. Hatalar ve reddetmeler ücretsizdir, bu nedenle yalnızca başarılı tamamlamalar için ödeme yaparsınız. Bu kullanım ödemeli model, asla fazla ödeme yapmamanızı sağlar.
- Giriş tokenları milyon başına $0.15'tir.
- Çıktı tokenları milyon başına $0.50 maliyetindedir.
- Reddetmeler ve hatalar ücretsizdir.
API anahtarı yenileme ve istek limitleri
Her hesapta aynı anda yalnızca bir aktif API anahtarı bulunur. Anahtarınızı yeniden oluşturursanız, eski anahtar hemen geçersiz olur. Bu, güvenliği sağlar ancak istemcilerinizi hızlıca güncellemenizi gerektirir. Hız limitleri dakikada 300 istek ve anahtar başına 8 eş zamanlı istek olarak ayarlanmıştır.
Bu limitleri aşmak HTTP 429 hatalarına neden olur. Yeniden deneme mantığınızda üssel geri çekilme uygulayın. İstek hacminizi limitler içinde kalmak için izleyin. Daha yüksek verimlilik gerekiyorsa, iş yükünüzü birden fazla hesap arasında bölüşmeyi veya prompt boyutlarınızı optimize etmeyi düşünün. Anahtar, kayıttan hemen sonra gösterilir, bu yüzden güvenli tutun.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Yaygın HTTP hatalarında sorun giderme
HTTP hataları, isteğiniz veya sunucu yanıtıyla ilgili sorunları gösterir. Yaygın hatalar arasında 400 Bad Request, 401 Unauthorized ve 429 Too Many Requests bulunur. Bir 400 hatası genellikle hatalı JSON veya geçersiz parametreler anlamına gelir. Bir 401 hatası, yanlış veya süresi dolmuş bir API anahtarı olduğunu gösterir.
İstek üstbilgilerinizi ve yükünüzü sözdizimi hataları için kontrol edin. API anahtarınızın doğru ve aktif olduğundan emin olun. Bir 429 hatası alırsanız bekleyin ve üssel geri çekilme ile yeniden deneyin. Bu hataları otomatik olarak işlemek için resmi OpenAI SDK'larını kullanın. Net hata mesajları ve yeniden deneme mantığı sağlarlar. Bu, geliştirme süresini azaltır ve güvenilirliği artırır.
- 400: JSON sözdizimini ve parametreleri kontrol edin.
- 401: API anahtarı geçerliliğini doğrulayın.
- 429: Geri çekilme ile yeniden deneme mantığı uygulayın.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'