LLM Inference APIKılavuz
Yaygın AI Sohbet API Hatalarında Sorun Giderme
Bir AI sohbet API entegrasyonunu hata ayıklama genellikle yanlış yapılandırılmış üst bilgiler, yanlış anlaşılmış token sınırları veya hatalı akış işleme nedeniyle başarısız olur. Bu kılavuz, geliştiricilerin OpenAI uyumlu uç noktalara entegre ederken karşılaştıkları en yaygın uygulama hatalarını ele alır ve kodunuzun üretim ortamında güvenilir çalışmasını sağlar.
Güncelleme:
Anahtar noktalar
- Bağlam penceresi taşmasını önlemek için her zaman karakter sayısına değil, modelin tokenizasyonuna dayalı token kullanımını hesaplayın.
- Ağ kopmaları akışları tutarsız bir durumda bırakabileceğinden, JSON akışını ayrıştırmadan önce HTTP durum kodunu kontrol ederek akış hatalarını yönetin.
- Sessiz 400 veya 401 hatalarını önlemek için istek üst bilgilerinizin API spesifikasyonuyla, özellikle Content-Type ve Authorization alanlarıyla tam olarak eşleştiğinden emin olun.
- Dakikada 300 istek aşımı durumunda uygulamanızı durduracak 429 hataları oluşacağından hız limiti geri çekilme stratejilerini hemen uygulayın.
Bağlam Pencerelerini Anlamak
API hatalarının en sık nedenlerinden biri bağlam penceresini aşmaktır. Bağlam penceresi, hem girdi istemi hem de oluşturulan tamamlama dahil olmak üzere tek bir istekte izin verilen toplam token sayısını tanımlar. Bu limite ulaşıldığında API, istek dizisinin çok uzun olduğunu belirten bir hata ile isteği reddeder.
Geliştiriciler genellikle karakter sayısını token sayısıyla karıştırır. Tek bir kelime, tokenizasyona bağlı olarak birden fazla token temsil edebilir. Örneğin, 100.000 token bağlam penceresi, inference api tarafından sağlanan gibi, kapsamlı bir konuşma geçmişi veya büyük belge işleme imkanı sunar ancak sonsuz değildir.
- Token kullanımını izleyin: Bir istek göndermeden önce tokenları doğru saymak için modeliniz için resmi tokenizasyonu kullanın.
- Akıllıca kısaltın: Limiti aşarsanız, en son mesajları değil, en eski mesajları konuşma geçmişinden kaldırın.
- Ek yükü hesaba katın: Modelin yanıtı için bazı tokenlar ayırın. İsteminiz 63.000 token kullanıyorsa, tamamlama için yalnızca 1.000 tokenınız kalır.
Bu limitin yönetilmemesi bağlantı kopmalarına veya eksik yanıtlara neden olur. Üretim ortamına dağıtmadan önce token sayılarınızı model dokümantasyonuyla doğrulayın.
Akış Hatalarını Yönetmek
Sunucu Tarafı Etkinlikleri (SSE) aracılığıyla akış yanıtları iyi bir kullanıcı deneyimi için esastır ancak hata yönetimi karmaşıklığı getirir. Standart JSON yanıtlarının aksine, bir akış ortasında kesilebilir. Bir ağ hatası oluşursa, istemciniz kısmi veri alabilir ve akış tanımsız bir durumda kalabilir.
Bir akış tüketici uygularken, akışın yaşam döngüsünü dikkatli bir şekilde yönetmelisiniz. Akışı ayrıştırmadan önce HTTP durum kodunu kontrol edin. Bağlantı koparsa hatayı günlüğe kaydedin ve yeniden denemeyi mi yoksa kullanıcıya mesaj göstermeyi mi tercih edeceğinize karar verin.
Ayrıca, istemcinizin akış sonu işaretini doğru şekilde işlediğinden emin olun. Bazı kütüphaneler belirli bir kapanış olayı beklerken, diğerleri bağlantının kapanmasına dayanır. Bu konudaki yanlış anlaşılmalar asılı kalan işlemlere veya bellek sızıntılarına yol açabilir.
Her zaman akış istekleriniz için bir zaman aşımı uygulayın. API makul bir süre içinde yanıt göndermezse, kaynakları serbest bırakmak için isteği sonlandırın. Bu, yüksek eşzamanlılık ortamlarında kararlılığı korumak için kritiktir.
Token Sayımı ve Sınırlar
Token sayımı yalnızca bağlam penceresi içinde kalmakla ilgili değildir; aynı zamanda maliyet yönetimi ile de ilgilidir. Her tokenın belirli bir fiyatı vardır ve yanlış hesaplanan kullanım beklenmeyen faturalara yol açabilir. Fiyatlandırma şeffaf olsa da, girdi ve çıktı için token başına oranlar sunduğumuz için yine de kullanımı doğru şekilde takip etmeniz gerekir.
Çoğu geliştirici token saymak için bir kütüphane kullanır ancak kullandığınız model için doğru tokenizasyonu kullanmak kritiktir. Farklı modeller farklı tokenizasyonlar kullanır ve yanlış olanı kullanmak sayılan tokenlarda önemli sapmalara neden olabilir. Örneğin, İngilizce metinler için eğitilmiş bir tokenizasyon, kod için eğitilmiş birinden farklı noktalama işaretlerini işleyebilir.
Kullanım limitlerinize dikkat edin. API'miz API anahtarı başına dakikada 300 istek izni verir. Bu sınırı aşarsanız 429 Too Many Requests hatası alırsınız. Uygulamanıza basit bir sayaç eklemek bu limitler içinde kalmanıza ve hizmet kesintilerini önlemenize yardımcı olabilir.
Son olarak, aynı tokenizasyonun farklı uygulamaları arasında token sayımlarının biraz farklılık gösterebileceğini unutmayın. Tutarlılığı sağlamak için token sayma mantığınızı birkaç bilinen girdiyle test edin.
Üst Bilgi Yapılandırma Tuzakları
Üst bilgiler, API isteklerinizin yapılandırma katmanıdır. Bunları yanlış yapılandırmak, 400 Kötü İstek veya 401 Yetkisiz hataların yaygın bir nedenidir. İki en kritik üst bilgi Content-Type ve Authorization'dir.
Content-Type üst bilgisi application/json olarak ayarlanmalıdır. Eksik veya yanlışsa API, istek gövdenizi doğru şekilde ayrıştırmayabilir. Authorization üst bilgisi, API anahtarınızı Bearer YOUR_API_KEY formatında içermelidir. Yaygın bir hata, Bearer önekini unutmaktır; bu bir kimlik doğrulama hatasına neden olur.
- Yazım hatalarını kontrol edin: API anahtarınızın, herhangi bir son boşluk veya yeni satır dahil olmak üzere doğru şekilde kopyalandığından emin olun.
- Üst bilgileri doğrulayın: Gönderilen üst bilgileri incelemek için
curlveya Postman gibi bir araç kullanın. - Büyük/küçük harf duyarlılığını işleyin: Bazı API'ler üst bilgi adları için büyük/küçük harf duyarlıdır, ancak çoğu modern API değildir.
Her zaman bir istek göndermeden önce üst bilgilerinizi doğrulayın. Bir üst bilgide küçük bir hata tüm isteğin başarısız olmasına neden olabilir ve bu da kafa karışıklığına ve boşa harcanan hata ayıklama süresine yol açar.
Hız Limiti Yönetimi
Hız limitleri adil kullanım ve kötüye kullanımı önlemek için vardır. API'miz API anahtarı başına dakikada 300 istek izni verir. Bu sınırı aşarsanız 429 Too Many Requests hatası alırsınız. Bu hata, başka bir istek yapmadan önce ne kadar beklemeniz gerektiğini gösteren Retry-After başlığını içerir.
Hız limitlerini etkili bir şekilde yönetmek için bir geri çekilme stratejisi uygulayın. Hemen yeniden denemek yerine, her yeniden denemede üstel olarak artan bir süre bekleyin. Bu, uygulamanızın yoğun zamanlarda API'yi aşırı yüklemesini önler.
Kullanım metriklerinizi izleyin. Çoğu API, istek hacminizi takip etmek için bir kontrol paneli veya API uç noktası sağlar. Bu verileri kullanarak uygulamanızın istek desenini optimize edin. Çok sayıda küçük istek yapıyorsanız, bunları bir araya getirmeyi düşünün.
Hız limitlerinin hesap için değil ana başına olduğunu unutmayın. Birden fazla anahtarınız varsa, her anahtarın kendi limiti vardır. Beklenmedik limitlere takılmamak için anahtar dağıtımınızı buna göre planlayın.
Hata Kodu Yorumlama
Hata kodlarını anlamak hata ayıklama için kritiktir. Karşılaşacağınız en yaygın hatalar 400 Kötü İstek, 401 Yetkisiz, 429 Çok Fazla İstek ve 500 Sunucu Hatası'dır.
- 400 Kötü İstek: Bu genellikle istek gövdesindeki bir sorunu belirtir; örneğin eksik alanlar veya geçersiz JSON. Hangi alanın yanlış olduğunu öğrenmek için hata mesajındaki ayrıntıları kontrol edin.
- 401 Yetkisiz: Bu, API anahtarınızla ilgili bir sorunu belirtir. Anahtarın doğru olduğundan ve iptal edilmediğinden emin olun.
- 429 Too Many Requests: Bu, hız limitini aştığınızı gösterir. Bu durumu zarifçe yönetmek için bir geri çekilme stratejisi uygulayın.
- 500 Sunucu Hatası: Bu, sunucu tarafındaki bir sorunu belirtir. Kısa bir gecikmeden sonra isteği yeniden deneyin.
Her zaman hata yanıt gövdesini günlüğe kaydedin. Yanlış giden şey hakkında, hataya neden olan belirli alan gibi değerli bilgiler içerir. Bu, saatlerce hata ayıklama süresinden tasarruf etmenizi sağlayabilir.
İstek Gövdelerini Optimize Etme
İstek gövdesi, API etkileşiminizin temelidir. Optimize etmek performansı artırabilir ve maliyetleri düşürebilir. Yaygın bir hata, tek bir istekte çok fazla veri göndermektir. İsteminiz çok büyükse, bağlam penceresini aşabilir veya daha yüksek maliyetlere yol açabilirsiniz.
JSON'unuzu dikkatlice yapılandırın. Tüm gerekli alanların mevcut olduğundan ve isteğe bağlı alanların yalnızca gerektiğinde dahil edildiğinden emin olun. Örneğin, akış kullanmıyorsanız stream parametresini dahil etmeyin. Bu, yük boyutunu azaltır ve yanıtı basitleştirir.
İstek gövdelerinizi test etmek için curl veya Postman gibi araçlar kullanın. Bu, JSON'un geçerli olduğunu ve API'nin onu doğru şekilde yorumladığını doğrulamanıza olanak tanır. Ayrıca gönderilen gereksiz verileri de belirlemenize yardımcı olur.
Son olarak, aynı istekler için yanıtları önbelleğe almayı düşünün. Aynı istemi birden fazla kez gönderiyorsanız, yanıtı yerel olarak depolayabilir ve API çağrısını tekrar yapmaktan kaçınabilirsiniz. Bu, tekrarlayan görevler için gecikme süresini ve maliyetleri önemli ölçüde azaltabilir.
Araç Çağırma Hata Ayıklama
Araç çağırma, modelin kullanıcı girdisine göre işlevleri yürütmesini sağlar. Araç çağırma hata ayıklama, birden fazla adım içerdiği için zorlu olabilir: isteği gönderme, araç çağrısını alma, işlevi yürütme ve sonucu modele geri gönderme.
İşlev tanımlarınızın doğru olduğundan emin olun. Şema, gerçek işlev imzasıyla eşleşmelidir. Şema yanlışsa, model geçersiz argümanlar oluşturabilir ve işlevi yürütmeye çalışırken hatalara yol açabilir.
Araç çağırma argümanlarını ve işlev çıktısını günlüğe kaydedin. Bu, modelin doğru argümanlar oluşturduğundan ve işlevinizin beklendiği gibi yürütüldüğünden emin olmanızı sağlar. Bir hata varsa, günlük sorunu belirlemenize yardımcı olur.
Hataları zarifçe yönetin. İşlev yürütme başarısız olursa, modelin yanıtını ayarlayabilmesi için modele bir hata mesajı gönderin. Bu, daha iyi bir kullanıcı deneyimi sağlar ve modelin hatalardan kurtulmasına olanak tanır.
Sorular ve cevaplar
API isteklerim için token kullanımını nasıl hesaplarım?
Belirli modeliniz için sağlanan resmi tokenizer kütüphanesini kullanın. Karakter sayısı, token sayısının güvenilir bir göstergesi değildir; farklı karakterler farklı sayıda token temsil edebilir. Çoğu SDK, token sayısını doğru bir şekilde saymak için bir yardımcı işlev sağlar.
Hız limitini aşarsam ne olur?
429 Çok Fazla İstek hatası alırsınız. Yanıt, yeniden denemeden önce ne kadar beklemeniz gerektiğini gösteren bir <code>Retry-After</code> üst bilgisi içerir. Bunu zarifçe yönetmek için üstel geri çekilme stratejisi uygulamanız önerilir.
Bu API ile herhangi bir OpenAI uyumlu SDK kullanabilir miyim?
Evet, OpenAI API formatını destekleyen herhangi bir SDK, <code>base_url</code> ve <code>API_KEY</code> ortam değişkenlerini değiştirerek kullanılabilir. Bu, Python, Node.js ve diğer popüler dilleri içerir.
Uygulamamda akış hatalarını nasıl yönetirim?
Akışı ayrıştırmadan önce HTTP durum kodunu kontrol edin. Bağlantı koparsa, hatayı günlüğe kaydedin ve yeniden denemeyi veya kullanıcıya bir mesaj görüntülemeyi karar verin. Süre aşımı uygulamak, asılı kalan işlemlerin önlenmesine yardımcı olur.
Anahtarınız tek bir formun uzağında
Bir hesap oluşturun, anahtarı kopyalayın, temel URL'yi değiştirin. Kurulumun tamamı bu kadar.
API anahtarı al