TR ▾
API anahtarı al

Ollama API: Nasıl Çalışır ve Alternatifler Nelerdir

Ollama API: Nasıl Çalışır ve Alternatifler Nelerdir

Ollama API, yerel LLM'leri çalıştırmak için standart bir arayüz sağlar; ancak kendi kendine barındırma olmadan üretim düzeyinde güvenilirliğe ihtiyaç duyan geliştiriciler için barındırılan bir alternatif, önemli operasyonel avantajlar sunar. Bu kılavuz, Ollama API ekosistemiyle entegrasyonun nasıl yapılacağını, kısıtlamaların anlaşılmasını ve pipeline'ınız için pratik bir seçim olduğunda barındırılan, sansürsüz bir uç noktanın nasıl değerlendirileceğini açıklar.

Güncellendi

Kart gerekmez. Kayıt olduktan sonra tek tıkla ücretsiz test kredisi $0.50 kazanın (kişi başına bir kez).

API anahtarı al

Temel noktalar

  • Ollama'nın standart API'si yerel çıkarım için optimize edilmiştir; donanım, güncellemeler ve çalışma süresini kendiniz yönetmeniz gerekir.
  • Barındırılan alternatifler aynı OpenAI uyumlu sözdizimini sunar; altyapı yükünü kaldırırken sansürsüz modelleri destekler.
  • Bağlam pencereleri ve token sınırları, yerel örnekler ile barındırılan hizmetler arasında önemli ölçüde farklılık gösterir ve istem tasarımını etkiler.
  • Akış, fonksiyon çağırma ve JSON modu her iki ekosistemde de standart özelliklerdir, ancak hata işleme uygulama açısından farklılık gösterir.

Bağlam Pencerelerini Anlamak

Bağlam pencereleri, bir LLM'nin tek bir istekte işleyebileceği tokenların toplam sayısını tanımlar; hem girdi istemini hem de oluşturulan çıktıyı içerir. Yerel Ollama dağıtımlarında bu sınır, mevcut VRAM ve sistem RAM'iniz tarafından belirlenir. Modeliniz bu fiziksel sınırları aşarsa, çıkarım başarısız olur veya önemli ölçüde bozulur. Sansürsüz modeller sunanlar gibi barındırılan API sağlayıcıları genellikle sabit bağlam pencereleri (modern mimariler için genellikle 100.000 token) ilan eder; bu da size öngörülebilir sınırlarla hatlar tasarlamanıza olanak tanır.

Yerel Ollama'dan barındırılan bir API'ye geçerken, girdi ve çıktı tokenları arasındaki ayrımı dikkate almalısınız. Bazı hizmetler, toplam bağlam penceresi daha büyük olsa bile ayrı bir maksimum çıktı sınırına sahiptir. Bu ayrım, uzun metin oluşturma görevleri için kritiktir. Yerel kurulumlar donanım yükselterek daha büyük bağlamlarla deneme yapmanıza izin verirken, barındırılan hizmetler çok kiracı performansını korumak için sıkı sınırlar uygular. Çalışma zamanı sırasında kesme hatalarından kaçınmak için seçtiğiniz uç noktanın spesifik girdi/çıktı ayrışımını her zaman doğrulayın.

Token Sayım Hataları

Tokenizasyon farklılıkları, yerel Ollama örnekleri ile harici barındırılan hizmetler arasında geçiş yaparken özellikle yaygın bir API hatası kaynağıdır. Farklı modeller farklı tokenlayıcılar kullanır; bu nedenle aynı metin farklı token sayıları üretebilir. Yerel Ollama sarmalayıcıları genellikle yüklü olan belirli model dosyasına dayalı olarak tokenları tahmin ederken, barındırılan API'ler sunan modelin tokenlayıcısına sıkı sıkıya bağlı olarak sayar. Bu durum, harici API isteklerini yönetmek için yerel token sayılarına güveniyorsanız beklenmeyen hız limiti aşımına veya bağlam penceresi taşmasına yol açabilir.

Bu hataları önlemek için istek göndermeden önce istemci kodunuzda sağlam bir token sayma mekanizması uygulayın. Karakter tabanlı yaklaşımlar yerine modelinize karşılık gelen resmi tokenlayıcı kütüphanesini (örneğin Llama 3 veya Mistral tokenlayıcı kütüphanesini) kullanın. Bir barındırılan sansürsüz API kullanırken tokenizasyonun modelin beklenen formatıyla eşleştiğinden emin olun. Bazı API'ler token saymak için ayrı bir uç nokta sağlar, ancak istemci tarafı hesaplamaya güvenmek, 100,000 tokenlık pencere içinde kalmanızı sağlar.

Akış Yanıtı İşleme

Akış yanıtları, model çıktılarını gerçek zamanlı almanızı sağlar; bu da sohbet arayüzleri ve uzun oluşturma görevleri için kullanıcı deneyimini iyileştirir. Hem yerel Ollama API'leri hem de barındırılan alternatifler akış için Sunucu Tarafı Olayları (SSE) destekler. Ancak akış parçalarının yapısı değişebilir. Yerel Ollama örnekleri her parçada meta veri içerebilirken, barındırılan API'ler genellikle kullanım istatistiklerini veya durma nedenlerini son parçada toplar.

Akış uygularken, istemcinizin kısmi JSON nesnelerini işleyip doğru şekilde birleştirebildiğinden emin olun. Barındırılan sansürsüz API'lerde, son parça genellikle token kullanımı ve bitiş nedenlerini içeren tam yanıt nesnesini içerir. Bir sohbet uygulaması oluşturuyorsanız, akış tokenlarını arabelleğe alın ve kullanıcı arayüzünü kademeli olarak güncelleyin. Bağlantı kopmalarını her zaman zarifçe yönetin; çünkü ağ kararsızlığı akışları yerel donanım arızalarından farklı şekilde kesebilir. Veri yapısındaki tutarlılığı sağlamak için akış ayrıştırıcınızı hem yerel hem de barındırılan uç noktalarla test edin.

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

Fonksiyon çağırma, modellerin uygulamanızın programlı olarak yürütebileceği yapılandırılmış veriler çıkarmasını sağlar. Yerel Ollama, spesifik model mimarileri aracılığıyla araç kullanımını destekler; ancak uygulama detayları modelin eğitim verisine bağlıdır. Barındırılan API'ler, OpenAI fonksiyon çağırma şemasına uyarak bunu standartlaştırır; bu da mevcut SDK'ları minimum kod değişikliğiyle kullanmanıza olanak tanır. Bu durum, veri çıkarma, form doldurma veya harici API'leri tetikleme gibi görevler için özellikle faydalıdır.

Fonksiyon çağırma yapılandırılırken, araçlarınızı açıkça, ayrı isimler, açıklamalar ve parametre şemaları ile tanımlayın. Hem yerel hem de barındırılan hizmetler bu şemalara sıkı uyum gerektirir; geçersiz JSON çıktısı ayrıştırma hatalarına neden olur. Sansürsüz barındırılan modeller, fonksiyon çağırma konusunda genellikle daha iyidir çünkü karmaşık veya alışılmadık araç tanımlamalarını reddetme olasılıkları daha düşüktür. Araçlarınızı eksik parametreler veya beklenmeyen veri türleri gibi uç durumlarla kapsamlı şekilde test edin; böylece modelin bunları zarifçe yönettiğinden emin olun. Fonksiyon çağırmanın token tükettiğini unutmayın; bu nedenle hız limitleri içinde kalmak için kullanımınızı izleyin.

JSON Modu Doğrulaması

JSON modu, modelin sıkı şekilde geçerli JSON çıktısı vermesini zorlar; bu, programatik tüketim için gereklidir. Yerel Ollama örnekleri bunu format parametresi aracılığıyla destekler, ancak sıkılık modelden modele değişir. Barındırılan API'ler genellikle belirtilen şemaya uymayan herhangi bir çıktıyı reddederek sıkı JSON modunu uygular. Bu durum, uygulama kodunuzda son işlem ve hata işleme ihtiyacını azaltır.

JSON modunu etkili kullanmak için, isteğinizde açık bir şema sağlayın. Gerekli alanları, veri türlerini ve kısıtlamaları tanımlayın. Model geçersiz JSON çıkarsa, API genellikle bir hata döndürür; bu da size ayarlanmış istemlerle yeniden deneme imkanı tanır. Barındırılan sansürsüz API'lerde JSON modu güvenlidir çünkü modeller hassasiyet için ayarlanmıştır. Çıktıyı uygulama mantığınıza geçirmeden önce her zaman bir JSON ayrıştırıcısı kullanarak doğrulayın. Bu, hatalı dizeler veya eksik parantezlerden kaynaklanan çalışma zamanı hatalarını önler.

Hız Limiti (300 RPM)

Hız limitleri, API altyapısını aşırı yükten korur ve adil kullanım sağlar. Yerel Ollama örneklerinin kendi içinde bir hız limiti yoktur; yalnızca donanımınız tarafından kısıtlanırlar. Barındırılan hizmetler ise sıkı limitler uygular; örneğin, API anahtarı başına dakikada 300 istek. Bu limit başarılı ve başarısız isteklerin her ikisi için de geçerlidir; bu nedenle verimsiz kod, kotasını hızla tüketebilir.

Hız limiti hatalarını zarifçe yönetmek için istemci kodunuzda üstel geri çekilme uygulayın. Limitlere çarpmadan önce kullanım metriklerinizi izleyin. Bazı barındırılan API'ler ayrıca eşzamanlı istek limitleri uygular; örneğin, anahtar başına eşzamanlı 8 istek. Bu, hataları tetiklemeksizin API'yi paralel isteklerle dolduramayacağınız anlamına gelir. Yüksek veri akışı olan uygulamalar için, yükü dağıtmak amacıyla birden fazla API anahtarı kullanmayı düşünün. Sağlayıcıya ve plana göre değişebildiği için spesifik hız limiti ayrıntılarını görmek üzere API belgelerine her zaman bakın.

Ödeme ve Kredi Sorunları

Barındırılan API'ler genellikle ön ödemeli kredi modeliyle çalışır; burada gerçek token kullanımına göre ödeme yaparsınız. Maliyetler girdi ve çıktı tokenlarına göre hesaplanır; her biri için farklı oranlar vardır. Örneğin, girdi tokenları milyon başına 0,15 $ tutarken, çıktı tokenları milyon başına 0,50 $ tutar. Hatalar ve reddedilenler genellikle ücretsizdir, bu da israfı azaltır. Kredi genellikle süresi dolmaz; bu da ihtiyacınız olduğunda bakiye yüklemenize olanak tanır.

Ödeme yöntemleri değişir; birçok hizmet gizlilik ve hız için kriptoyu tercih eder. Minimum bakiye yükleme miktarları (örneğin 20 $) ve daha büyük yatırımlar için bonus yapıları yaygındır. Fatura sorunları (çift ücretlendirme gibi) ile karşılaşırsanız, çözüm için destek ekibiyle iletişime geçin. Abonelik modellerinin aksine, ön ödemeli kredi harcama üzerinde tam kontrol sağlar. Beklenmeyen maliyetlerden kaçınmak için kullanım panelinizi her zaman izleyin. Entegrasyon testleri yapan geliştiriciler için birçok sağlayıcı küçük bir ücretsiz deneme kredisi sunar; bu sayede hemen ödeme yapmadan kurulumunuzu doğrulayabilirsiniz.

İçerik Reddetme Mantığı

İçerik reddi, bir LLM'nin belirli konuları (örneğin yetişkin içeriği veya tartışmalı siyasi görüşler) ne zaman engellediğini belirler. Yerel Ollama modelleri, temel modele ve ince ayara bağlı olarak reddetme davranışları açısından büyük farklılık gösterir. Barındırılan sansürsüz API'ler, yasal yetişkin içeriği, güvenlik araştırmaları ve tartışmalı konular için reddetmeleri minimize etmek üzere tasarlanmıştır. Bu durum, yaratıcı özgürlüğün marka güvenliğinden daha önemli olduğu uygulamalar için idealdir.

Ancak, sansürsüz olması kısıtlamasız olduğu anlamına gelmez. Çoğu barındırılan API hala belirli içeriklerin engellenmesi gibi kesin sınırlamaları uygular. Reddeder durumlar genellikle API yanıtındaki özel bir bitiş nedeni ile belirtilir. Entegrasyon sırasında bu reddetmeleri günlüğe kaydederek ve gerekirse uygulama mantığınızı ayarlayarak zarifçe yönetin. Örneğin, kullanıcı engellenmiş belirli bir içerik türü talep ederse, kullanıcı deneyimini bozmadan onlara net bir şekilde bilgi verin. Bu sınırlamaları anlamak daha sağlam uygulamalar tasarlamanıza yardımcı olur.

Sorular ve cevaplar

Ollama API, OpenAI API ile aynı mı?

Hayır, ancak uyumludur. Ollama API, /v1/chat/completions gibi uç noktalar kullanarak OpenAI’nin benzer bir yapısını izler. Ancak yerel Ollama örnekleri, akış ve tokenizasyon için farklı varsayılan davranışlara sahip olabilir. Barındırılan API'ler genellikle daha kolay geçiş için OpenAI’nin tam şemasını taklit eder.

Ollama ile fonksiyon çağırma yapabilir miyim?

Evet, ancak bu modele bağlıdır. Tüm yerel Ollama modelleri fonksiyon çağırma desteği sunmaz. Barındırılan sansürsüz API'ler genellikle standart OpenAI tarzı fonksiyon çağırma desteği sunar ve mevcut araçlarla entegrasyonu kolaylaştırır.

Token sayma hatalarını nasıl yönetirim?

İstekleri göndermeden önce tokenları doğru saymak için modeliniz için resmi tokenizer'ı kullanın. Karakter sayılarına veya yerel tahminlere güvenmek bağlam taşmalarına yol açabilir. Hatalardan kaçınmak için token sayılarını API sınırlarıyla doğrulayın.

Hız limitini aşarsam ne olur?

API, 429 Too Many Requests hatını döndürür. İstemci kodunuzda gecikmeden sonra yeniden deneme için üstel geri çekilme uygulayın. Daha yüksek veri akışı için birden fazla API anahtarı kullanarak yükü dağıtmayı düşünün.