tr ▾
Anahtar

Ollama API: Yaygın Hataları Giderme

Ollama API'si, yerel veya barındırılan modelleri üçüncü taraf araçlara bağlamak için standart arayüzdür; ancak birçok geliştirici yerel çıkarımdan uzak uç noktalara geçerken duvarlarla karşılaşır. Bu kılavuz, entegrasyonu bozan tam yapılandırma hatalarını, token limitlerini ve akış tuhaflıklarını açıklar.

Son güncelleme

Özet

  • Çoğu entegrasyon hatası, yerel Ollama'yı uzak uç noktalarla değiştirirken yanlış temel URL'ler veya eksik kimlik doğrulama başlıklarından kaynaklanır.
  • 100k bağlam penceresi hem giriş hem de çıkış tokenlarını içerir; bu da uzun konuşmalar için mevcut alanı önemli ölçüde azaltır.
  • Akış yanıtları, belirteç kullanım meta verilerinin yalnızca son parçada görünmesi nedeniyle SSE parçalarının doğru ayrıştırılmasını gerektirir.
  • Fonksiyon çağırma ve JSON modu sıkı şema doğrulaması gerektirir, aksi takdirde model bozuk JSON döndürür.

100k Bağlam Penceresini Anlama

Her bölümün ilk cümlesi, başlıktaki soruyu yanıtlar.

100.000 token'lık bir bağlam penceresi devasa görünse de, girdi istemleri ve çıktı tamamlamaları arasında eşit şekilde bölünür. Uzun bir sistem istemi ile uzun bir konuşma geçmişini gönderdiğinizde, beklediğinizden daha hızlı bir şekilde bu bütçeyi tüketirsiniz. Çoğu geliştirici, sınırın yalnızca girdiye uygulandığını varsayar; bu da modelin üst sınırına ulaştığında kısaltılmış yanıtlara veya sessiz hatalara yol açar.

Bağlam olarak 50.000 token'lık bir belge gönderdiğiniz bir senaryo düşünün. Gerçek üretim için yalnızca 50.000 tokenınız kalır. Bu dengeyi dikkatli yönetmezseniz, model cümle ortasında kesilecektir. Beklenmedik kesilmeleri önlemek için her istekte gönderilen toplam token sayısını izleyin.

Maksimum Token vs. Varsayılan Çıktı Uzunluğu

Her bölüm, başlığındaki soruyu yanıtlamalıdır.

Bir sınır belirtmediğiniz sürece, çoğu API mütevazı bir çıktı uzunluğunu varsayılan olarak ayarlar, genellikle yaklaşık 2.048 token. Bu varsayılan kısa sorgular için kullanışlıdır ancak kod üretimi veya uzun form yazım için felaket olabilir. Tam bir senaryo veya detaylı bir analiz üretmesi için modele ihtiyacınız varsa, max_tokens parametresini açıkça ayarlamanız gerekir.

Bu değeri çok yüksek ayarlamak gecikme süresini ve maliyeti de etkileyebilir. Faydalı olsun ya da olmasın, oluşturulan her token için ödeme yapıyorsunuz. Pragmatik bir yaklaşım, varsayılan değere veya keyfi bir sonsuzluğa bırakmak yerine, kullanım durumunuza uygun makul bir üst sınır belirlemektir.

Akış SSE Parçalarını Doğru Şekilde İşleme

Akış, veri kaybını önlemek için Sunucu Tarafı Olaylarının (SSE) dikkatli bir şekilde yönetilmesini gerektirir.

Akış modunu (streaming) etkinleştirdiğinizde API, tek bir tam yanıt yerine küçük parçalar dizisi döndürür. Her parça metnin bir delta'sını içerir ancak kritik detaylar gibi token kullanım istatistikleri genellikle yalnızca son parçada bulunur. Çok erken durursanız, faturalandırma veya hız sınırı takibi için gereken kullanım verisini kaçırırsınız.

Ayrıca, akış (streaming) hata işlemede karmaşıklık getirir. Bir ağ kesintisi, kısmi metinle sonuçlanabilir. Parçaları birleştirerek tam mesajı yeniden oluşturabilen sağlam bir ayrıştırıcıya ihtiyacınız vardır. Bu, özellikle metni gerçek zamanlı olarak işleyen UI bileşenleriyle entegrasyon yaparken önemlidir.

Fonksiyon Çağırma Araç Tanımlama Hataları

Fonksiyon çağırma, araç şemalarının modelin beklentileriyle eşleşmediğinde başarısız olur.

Model, araç tanımları için belirli bir JSON yapısı bekler. Gerekli alanları bırakırsanız veya yanlış türler kullanırsanız, model aracı tamamen yok sayabilir veya bozuk bir yanıt döndürebilir. Bu, harici API'lerle etkileşim kurması gereken ajanlar geliştiren geliştiriciler için yaygın bir sorun noktasıdır.

İstekleri göndermeden önce işlev şemanızı API belgelerine karşı her doğrulayın. Parametre için bir dize yerine tam sayı kullanmak gibi küçük sapmalar bile işlev çağrısını bozabilir. Bu hata ayıklama, modelin aracı gerçekten çağırmayı denedip denemediğini görmek için ham JSON yanıtını incelemeyi gerektirir.

JSON Modu Yanıt Formatı Sorunları

JSON modu modelin geçerli JSON çıkış yapmasını zorlar ancak yine de uydurma yapabilir.

response_format'ı json_object olarak ayarladığınızda, modelin yalnızca JSON çıktısı vermesi beklenir. Ancak bu, içeriğin anlamsal olarak doğru olduğu garantisi değildir. Model geçerli JSON sözdizimi üretebilir ancak yanlış anahtarlar veya eksik alanlar içerebilir. Veriyi kullanmadan önce yapıyı doğrulamak için bir ayrıştırıcıya hâlâ ihtiyacınız vardır.

Ayrıca, JSON modu bazen modelin yaratıcılığını veya esnekliğini azaltabilir. İsteminiz çok karmaşıksa, model anlatıyı sıkı bir JSON yapısına sığdırmada zorlanabilir. Bu modu öncelikle tutarlılığın nüanslardan daha önemli olduğu yapılandırılmış veri çıkarma veya işlev argümanları için kullanın.

Saniye Başına İstek Limiti ve Eşzamanlı İstekler

İstek limitleri API anaşı başına uygulanır, kullanıcı veya IP adresi başına değil.

Çoğu API, dakika başına istek sayısı ve eşzamanlı bağlantılar için bir sınır getirir. Bu sınırları aşarsanız, 429 Çok Fazla İstek hatası alırsınız. Bu, kullanıcı isteklerini işlemek için birden fazla iş parçacığı veya işlem başlatan uygulamalar için kritiktir. Tek bir anahtar yalnızca sınırlı sayıda paralel isteği işleyebilir.

Bunu yönetmek için istemci kodunuzda üstel geri çekilme uygulayın. 429 hatası aldığınızda, yeniden denemeden önce kısa bir süre bekleyin. Bu, sunucuyu aşırı yüklemekten kaçınır ve daha sorunsuz bir kullanıcı deneyimi sağlar. Bekleme sürelerinizi optimize etmek için yanıt başlıklarındaki retry-after değerlerini her zaman kontrol edin.

API Anahtarı Değiştirme Davranışı

Bir API anahtarını yeniden oluşturmak öncekini hemen geçersiz kılar.

Bazı platformlar hesabı başına yalnızca bir aktif anahtara izin verir. Yeni bir anahtar oluşturursanız, eski anahtar anında çalışmayı bırakır. Eski anahtarı kullanan birden fazla hizmetiniz veya betiğiniz varsa bu kesintilere neden olabilir. Anahtar döndürmeden önce anahtarınızın tüm örneklerini her zaman güncelleyin.

Bu davranış güvenlik için tasarlanmıştır; sızan bir anahtarın sonsuza kadar kullanılamamasını sağlar. Ancak, dağıtık sistemlerde dikkatli yönetimi gerektirir. Anahtarınızı ortam değişkenleri veya gizli yöneticiler kullanarak saklayın; bu, güncellemeleri daha kolay ve hataya daha az yatkın hale getirir.

İstek Gövdesi Boyut Sınırları

Büyük yükler 8 MB istek gövdesi sınırını aşabilir.

Base64 olarak kodlanmış uzun belgeler veya görseller gönderdiğinizde, istek gövdesi hızla büyüyebilir. Boyut sınırını aşarsanız, sunucu isteği 413 Payload Too Large hatasıyla reddeder. Bu, birçok durumda planınızı yükselterek artırılamayan katı bir sınırdır.

Bunu önlemek için girdinizi sıkıştırın veya büyük belgeleri daha küçük parçalara bölün. Resimler için daha verimli bir kodlama yöntemi de kullanabilirsiniz. Özellikle medya açısından zengin içeriklerle çalışırken istek boyutlarını her zaman izleyin.

Sıkça sorulan sorular

Uncensored LLM standart modellerle aynı parametreleri destekliyor mu?

Evet, censorship olmayan motor temperature, top_p ve durma dizileri gibi standart parametreleri destekler. Standart modeller için tak-çalıştır bir yer değiştirme olarak tasarlanmıştır; bu nedenle zaten aşina olduğunuz aynı istemci kodunu ve parametreleri kullanabilirsiniz.

Ollama API anahtarı üretim ortamı için güvenli mi?

API anahtarı ödenmiş krediniz ve kullanım limitlerinizle ilişkilidir. Gizli tuttuğunuz sürece güvenlidir. İsteklerinizi eğitim için kullanmayız ve anahtar ihlal edilirse anında değiştirilebilir. Sadece onu ortam değişkenlerinde, kaynak kodunuzda değil sakladığınızdan emin olun.

Bu sansürsüz AI modelini ticari projeler için kullanabilir miyim?

Evet, oluşturulan metni ticari amaçlar için kullanabilirsiniz. Model, reşit olmayanları içmediği sürece yetişkin içerik dahil olmak üzere kısıtlamasız kullanım için ayarlanmıştır. Token kullanım ücretleri dışında ek lisans ücreti yoktur.

Uncensored Ollama modeli geçersiz JSON döndürdüğünde oluşan hataları nasıl yönetebilirim?

Bir yeniden deneme sınırı ile bir yeniden deneme mekanizması uygulayın. Model geçersiz JSON döndürürse, daha belirgin bir çıktı teşvik etmek için daha düşük bir sıcaklık değeriyle isteği tekrar deneyebilirsiniz. Verileri uygulamanızda kullanmadan önce her zaman JSON yapısını doğrulayın.

API anahtarınızı saniyeler içinde alın

Kaydolun, anahtarı kopyalayın, uç nokta URL'sini güncelleyin. Yapmanız gereken tek şey bu.

Anahtar