TR ▾

Sansürsüz AI API: Yaygın Hatalar ve Çözümleri

Çoğu geliştirici, modeller karmaşık olduğu için değil, standart OpenAI kısıtlamalarını kısıtsız uç noktalara uyguladığı için sansürsüz AI API entegrasyonunda zorlanır. Bu rehber, bir sansürsüz LLM API'sine geçişte 400 hatalarına veya sessiz başarısızlıklara neden olan özel yapılandırma hatalarını, hız limitlerini ve yapısal özellikleri açıklar.

Güncellendi

Anahtar noktalar

  • Sansürsüz API standart OpenAI sözdizimini takip eder ancak gömme veya çoklu model yönlendirme gibi gelişmiş özelliklere sahip değildir; bu nedenle istemciniz tek bir uç nokta için yapılandırılmalıdır.
  • Akış yanıtları özel SSE işleme gerektirir; SDK'nız varsayılan olarak JSON ayrıştırma kullanıyorsa, büyük sansürsüz çıktılarda ayrıştırma hatalarıyla karşılaşabilirsiniz.
  • Fonksiyon çağırma çalışır ancak model, talimatlarla ayarlanmış modellere kıyasla argümanları daha sık uydurabileceğinden kesin JSON şeması uyumu gerektirir.
  • Dakikada 300 istek ve 8MB gövde boyutu ile sınırlısınız; bu, yüksek hacimli uygulamalar için dikkatli toplu işleme stratejileri gerektirir.

Sansürsüz AI API Uç Noktasını Anlamak

Bir sansürsüz AI API'si entegre ederken yapılan ilk hata, onun standart ticari modellerle aynı şekilde davrandığını varsaymaktır. Uç noktamız, barındırılan, OpenAI uyumlu bir chat-completions hizmetidir. Tek bir, özel sansürsüz büyük dil modelini sunar. Bu, model yönlendirmesi veya sürüm yönetimi ile uğraşmanıza gerek olmadığı anlamına gelir. İstekleri POST /v1/chat/completions adresine gönderirsiniz ve karşılığında metin alırsınız.

Görüntü, video ve çoklu sağlayıcıları paketleyen agregatörlerin aksine, bu hizmet saf yüksek performanslı, kısıtsız metin üretimine odaklanır. Model açık ağırlıklıdır ve yasal yetişkin kullanım için içerik reddi olmadan yanıt verecek şekilde ayarlanmıştır. Ancak bu bir GPT, Claude, Gemini veya başka bir sağlayıcının modeli değildir. Kendi GPU sunucularımızda çalışır.

Temel URL https://api.uncensoredgptapi.com/v1 şeklindedir. Kullanmak için mevcut OpenAI SDK'larınızdaki veya herhangi bir OpenAI uyumlu istemcinizdeki base_url değerini değiştirin ve API anahtarınızı girin. Göndermeniz gereken model kimliği basitçe "uncensored" şeklindedir. Bu sadelik entegrasyon süresini azaltır ancak istemcinizin geri yüklemeler beklemeden tek model uç noktasını işleyebildiğini doğrulamanızı gerektirir.

Yaygın Kimlik Doğrulama Hataları

Kimlik doğrulama hataları genellikle yanlış yapılandırılmış başlıklardan veya süresi dolmuş anahtarlardan kaynaklanır. API, standart Bearer token kimlik doğrulamasını kullanır. Her istek için Authorization başlığına API anahtarınızı eklemelisiniz.

Yaygın bir hata, API anahtarını geçerliliğini doğrulamadan önbelleğe almaktır. Anahtarınızı yenilerseniz eski anahtar hemen iptal edilir. İstemci yapılandırmanızı yeni anahtarı kullanacak şekilde güncellemeniz gerekir. 401 Yetkisiz erişim hatası alırsanız iki şeyi kontrol edin: İlk olarak, anahtarın doğru, başında veya sonunda boşluk olmadan kopyalandığından emin olun. İkinci olarak, doğru Base URL'yi kullandığınızdan emin olun. Etki alanı veya yoldaki küçük bir sapma bile kimlik doğrulama başarısızlığına yol açar.

Diğer sık bir sorun yanlış model ID'sinin kullanılmasıdır. Uç nokta "uncensored" bekler. "gpt-4" veya başka bir standart model ID'si gönderirseniz, uç nokta isteği reddedebilir veya yalnızca bir modeli sunduğu için hata döndürebilir. İstek yükünüzdeki model alanını her zaman iki kez kontrol edin.

curl https://api.uncensoredgptapi.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

Akış Yanıtlarının Doğru Şekilde İşlenmesi

Sunucu Tarafı Olayları (SSE) üzerinden akış yanıtları desteklenir ancak senkron JSON yanıtlarına alışkın geliştiriciler tarafından sıklıkla yanlış işlenir. İsteğinizde "stream": true ayarladığınızda API, tek bir tam JSON yanıtı yerine kısmi JSON nesnelerinin bir akışını döndürür.

İstemciniz tüm yanıtı tek seferde JSON olarak ayrıştırmaya çalışırsa başarısız olur. Akışı satır satır okumalısınız. Her satır data: ile başlar ve kısmi bir JSON nesnesi içerir. Son satır data: [DONE] şeklindedir. Kodunuz, nihai metni yeniden oluşturmak için bu parçaları birleştirmelidir.

Bazı SDK'lar bunu otomatik olarak işler ancak özel uygulamalar açık SSE ayrıştırması gerektirir. İstemci arabelleğinizin büyük çıktılarla zaman aşımına uğramadan başa çıkabildiğinden emin olun. Sansürsüz model uzun yanıtlar üretebilir ve akış bellek kullanımını yönetmeye yardımcı olur. Bağlantı kopmaları yaşarsanız, yeniden deneme mantığı için üstel geri çekilme uygulamanızı düşünün.

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)

Fonksiyon Çağırma Yapılandırma Hataları

Fonksiyon çağırma desteklenir ancak sansürsüz model, talimatlarla ayarlanmış modellere kıyasla argümanları daha sık uydurabilir. Bu, tarafınızda daha sıkı doğrulama gerektirir. Araçları tanımlarken JSON şemanızın kesin olduğundan emin olun. Model argümanları doldurmaya çalışacaktır ancak gerekli alanları atlayabilir veya yanlış türler sağlayabilir.

Fonksiyonu yürütmeden önce her zaman fonksiyon çağırma argümanlarını doğrulayın. Model argümanlar için geçersiz JSON döndürürse hatayı zarifçe yönetin. Çıktının mükemmel yapılandırılmış olacağını varsaymayın. Argümanları temizlemek için bir yeniden deneme mekanizması veya son işleme adımı uygulamanız gerekebilir.

Ayrıca, sansürsüz modelin istem karmaşık olduğunda araç tanımlarını yok sayabileceğinin farkında olun. Sorunlarla karşılaşırsanız araç açıklamalarını basitleştirin ve sistem isteminin modele araçları uygun gördüğünde kullanması gerektiğini açıkça belirttiğinden emin olun. Davranışı doğrulamak için birkaç örnek girdiyle test edin.

Bağlam Penceresi Sınırları (100k Token)

Sansürsüz API, hem istemi hem de tamamlamayı birleştiren 100.000 token'lık bir bağlam penceresi destekler. Bu, birçok standart modelden önemli ölçüde daha büyüktür ve kapsamlı konuşmalara veya büyük belge işleme olanak tanır. Ancak sonsuz değildir. Girdiniz bu sınırı aşarsa API hata döndürür.

Bu sınırı aşmamak için token kullanımınızı izleyin. Çoğu SDK, token saymak için yardımcı programlar sağlar. Konuşma geçmişinizdeki kümülatif tokenları takip edin. Büyük belgeler işliyorsanız, bağlam alanını açmak için bunları parçalara ayırmayı veya konuşmanın önceki kısımlarını özetlemeyi düşünün.

Bağlam penceresinin messages dizisindeki tüm mesajları içerdiğini unutmayın. Her mesaj toplam katkıda bulunur. Çok sayıda küçük mesaj gönderiyorsanız, ek yük birikebilir. Gereksiz tokenları en aza indirmek için istem yapınızı optimize edin. Örneğin, sabit kaldıklarında sistem talimatlarını her adımda tekrarlamaktan kaçının.

Hız Limitleme Açıklaması (300 RPM)

API, anahtar başına dakikada 300 istek için bir hız limiti uygular. Bu, tüm kullanıcılar arasında adil kullanım için katı bir sınırdır. Bu sınırı aşarsanız 429 Çok Fazla İstek hatası alırsınız. İstemciniz bunu bir yeniden deneme stratejisi uygulayarak yönetmelidir.

Yaygın bir hata, ani trafik dalgalarını hesaba katmamaktır. Hızlı art arda 300 istek gönderirseniz, ortalama hızınız daha düşük olsa bile sınırı aşabilirsiniz. İsteklerinizi dakika boyunca eşit şekilde dağıtın. Büyük bir veri kümesi işliyorsanız, akışı yönetmek için istekleri toplu hale getirmeyi veya bir kuyruk kullanmayı düşünün.

Hız sınırları API anahtarı başına uygulanır. Aynı anahtarı kullanan birden fazla hizmetiniz varsa, limiti paylaşırlar. Kapasiteyi artırmak için yeni bir anahtar oluşturabilirsiniz ancak her hesap için yalnızca bir anahtar aktif olduğunu unutmayın. Anahtarı istediğiniz zaman yenileyebilirsiniz ancak bu eski anahtarı iptal eder, bu nedenle tüm istemcilerin güncellendiğinden emin olun.

İstek Gövdesi Boyut Sınırları (8MB)

Her istek gövdesi 8 MB ile sınırlıdır. Bu sınır, messages dizisi ve tüm araç tanımları dahil olmak üzere JSON yüküne uygulanır. İsteğiniz bu boyutu aşarsa API, 413 Gövde Çok Büyük hatası ile reddeder.

Bu sınır, büyük dosyaları base64 kodlanmış veri olarak gönderirken veya kapsamlı konuşma geçmişleri içerirken önemlidir. Büyük belgelerle çalışıyorsanız, göndermeden önce metni sıkıştırmayı veya gereksiz boşlukları kaldırmayı düşünün. Bellek kullanımını azaltmak için akış kullanabilirsiniz ancak başlangıç istek gövdesi yine de 8 MB sınırına sığmalıdır.

Geliştirme sırasında istek boyutlarınızı izleyin. Bu hatayla karşılaşırsanız istem yapınızı gözden geçirin ve herhangi bir gereksiz bilgiyi kaldırın. Örneğin, tüm sistem istemini her mesajda dahil ediyorsanız, onu system rolüne bir kez taşıyın ve ona atıfta bulunun.

API Anahtarı Yönetimi ve Yenileme

Her hesap için yalnızca bir API anahtarı sınırlaması vardır. Bu anahtar kayıt sırasında oluşturulur ve hemen gösterilir. Anahtarınızı istediğiniz zaman panelden yeniden oluşturabilirsiniz. Yenileme sırasında eski anahtar anında iptal edilir. Eski anahtarı kullanan her istemci 401 Yetkisiz hatası alacaktır.

Bunu etkili bir şekilde yönetmek için anahtarı yenilemeden önce tüm istemcilerinizi güncelleyin. Anahtarı kullanan birden fazla hizmet veya cihazınız varsa, hepsinin eşzamanlı olarak güncellendiğinden emin olun. İhtiyacınız kadar yeni anahtar oluşturabilirsiniz ancak aynı anda yalnızca biri aktif olacaktır.

API anahtarı e-posta ve şifrenize bağlıdır. Anahtarınızı kaybederseniz yenileyebilirsiniz. Yenileme sayısında bir sınır yoktur. Ancak sık yenileme bir güvenlik endişesi gösterebilir, bu nedenle gerektiğinde kullanın. Anahtarınızı güvende tutun ve herkese açık olarak paylaşmayın.

İçerik Filtrelerini Sorun Giderme

Sansürsüz model yasal yetişkin, kurgusal, güvenlik araştırmaları veya tartışmalı konuları reddetmez. Ancak, her zaman geçerli olan tek bir katı içerik sınırı vardır: reşit olmayanlarla cinsel içerik. Bu içeriği içeren istekler engellenir.

Beklenmedik reddiyelerle karşılaşırsanız, isteminizde yasaklanmış içeriklerin ince göstergelerini kontrol edin. Model kısıtsız kullanım için ayarlanmıştır ancak temel güvenlik filtrelerini hala uygulayabilir. Kenar durumlarla test ediyorsanız, modelin sınırlarını anlamak için davranışı belgeleyin.

Diğer yaygın bir sorun uydurma oluşturmaktır. Sansürsüz model, inandırıcı ancak hatalı bilgiler üretebilir. Özellikle fonksiyon çağrıları kullanırken veya kod oluştururken kritik çıktıları her zaman doğrulayın. Model bazı durumlarda katı gerçeklik doğruluğundan önce akıcılığı önceliklendirir.

Sorular ve cevaplar

Sansürsüz API, OpenAI SDK'leri ile uyumlu mu?

Evet, tamamen uyumludur. Base URL'yi https://api.uncensoredgptapi.com/v1 olarak değiştirip model ID'sini "uncensored" olarak ayarlamanız yeterlidir. Streaming, tool calling ve messages gibi tüm standart parametreler beklendiği şekilde çalışır.

Hız limitlerini nasıl yönetirim?

Her API anahtarı için dakikada 300 istek ile sınırlısınız. Bu limiti aşarsanız 429 hatası alırsınız. Limit sıfırlandıktan sonra yeniden denemek için istemcinizde üstel geri çekilme (exponential backoff) uygulayın. Büyük veri setleri işliyorsanız istekleri toplu hale getirmeyi düşünün.

Birden fazla API anahtarı kullanabilir miyim?

Hayır, her hesap için yalnızca bir API anahtarı ile sınırlısınız. Anahtarı istediğiniz zaman yenileyebilirsiniz ancak bu işlem önceki anahtarı geçersiz kılar. Yenileme işleminden hemen sonra tüm istemcilerinizin yeni anahtarla güncellendiğinden emin olun.

Bağlam penceresi boyutu nedir?

Bağlam penceresi, hem istemi hem de tamamlamayı içeren 100,000 token kapasitesine sahiptir. Bu, uzun konuşmalar veya büyük belge işleme için olanak sağlar. Bu limiti aşmamak için token kullanımınızı izleyin.

Anahtarınız tek bir formun uzağında

Bir hesap oluşturun, anahtarı kopyalayın, temel URL'yi değiştirin. Kurulum işte bu kadar.

API anahtarı al