Ollama API vs OpenAI API: Uç Noktalar ve Kod
Ollama API vs OpenAI API sorusu, iki istek formatı ve bir modeli çalıştırmak için iki farklı yere indirgenir. Ollama'nın kendi yerel API'si ve bir OpenAI uyumlu katmanı vardır; bu nedenle barındırılan bir OpenAI tarzı uç noktaya geçiş, temel URL ve anahtar değişikliği anlamına gelebilir.


Kart gerekmez. Kayıt olduktan sonra, tek tıkla (kişi başı bir kez) $0,50 ücretsiz deneme kredisi talep edebilirsiniz.
API anahtarı alTemel noktalar
- Ollama, /api altında yerleşik rotalar ve /v1 altında bir OpenAI uyumlu katman sunar; OpenAI SDK'sı için yazılmış istemciler genellikle her ikisiyle de çalışır.
- Yerleşik Ollama, satır sonu ayrılmış JSON (newline-delimited JSON) akışı yapar; OpenAI formatı ise sunucu tarafından gönderilen olaylar (server-sent events) akışı yapar.
- Yerel ortamdan barındırılan ortama geçmek, kodunuzu değil, temel URL'yi, anahtarı ve model adını değiştirmeniz demektir.
- Yerel ortam veriyi makinenizde tutar; barındırılan ortam donanım işini kaldırır ve token başına fatura ekler.
Kısa özet
İkisi de bir mesaj listesi POST etmenizi ve metin almanızı ister. Fark, istek biçimindedir, sunucunun nerede olduğudur ve GPU için kimin ödeme yaptığıdır. Ollama, modelleri kendi bilgisayarınızda çalıştırır ve 11434 portunda dinler. OpenAI API ise kendi ücretli modellerine sahip barındırılan bir hizmettir. Ollama API vs OpenAI API karşılaştırmasında insanlar genellikle üçüncü bir şeyi kaçırır: Ollama ayrıca OpenAI uyumlu rotalar da sunar; bu nedenle iki format örtüşür.
Bu örtüşme, geçişi ucuz kılan şeydir. Uygulamanız zaten OpenAI SDK'sını kullanıyorsa, onu bugün yerel bir Ollama'ya, yarın da barındırılan OpenAI-uyumlu bir URL'ye yönlendirebilirsiniz. Bu sitedeki barındırılan uç nokta bunlardan biridir. Tek bir modeli, uncensored, https://api.ollamansfw.com/v1 adresinde sunar ve OpenAI, Meta veya başka bir laboratuvarın resmi bir ürünü değildir.
Uç noktadan uç noktaya farklılıklar
| Görev | Ollama yerel | OpenAI tarzı |
|---|---|---|
| Sohbet | POST /api/chat | POST /v1/chat/completions |
| Tek istek | POST /api/generate | POST /v1/responses veya sohbet tamamlamaları |
| Modelleri listele | GET /api/tags | GET /v1/models |
| Kimlik Doğrulama | Varsayılan olarak yok | Authorization: Bearer key |
| Akış | Satır sonu ayrılmış JSON | Sunucu tarafından gönderilen olaylar, bir done belirteci ile biter |
| Model adı | Çektiğiniz her şey, örneğin llama3 | Sağlayıcının listelediği her şey |
Ollama, OpenAI istemcilerinin buna bağlanabilmesini sağlayan aynı bağlantı noktasında /v1/chat/completions ve /v1/models uç noktalarını da sunar. Yerleşik çağrılar için varsayılan davranış akış yapmaktır; bu nedenle tek bir JSON yanıtı almak istediğinizde stream: false ayarını belirleyin.
Barındırılan uç nokta POST /v1/chat/completions, POST /v1/responses ve GET /v1/models uç noktalarını uygular, ayrıca GET /v1/balance adresinde bakiye kontrolleri yapar. Tam liste için API dokümantasyonuna bakın.
Aynı istek, üç farklı yol
Python ile Yerel Ollama:
import requests
r = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "llama3",
"messages": [{"role": "user", "content": "Say hello in five words."}],
"stream": False,
},
)
print(r.json()["message"]["content"])Yerel ve barındırılan ayarlar yan yana gösterilen OpenAI SDK'sı. Yorum satırı haline getirilen satır dışında hiçbir şey değişmez:
from openai import OpenAI
# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored", # local would be e.g. "llama3"
messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)Barındırılan uç noktaya akış açıkken curl ile:
curl https://api.ollamansfw.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'Yerel tarafta ayrıştırma farklıdır: her akış satırı message.content içeren bir JSON nesnesidir ve son satır done: true içerir. OpenAI formatında her olay data: ile başlar, choices[0].delta.content parçasını taşır ve akış [DONE] ile sona erer. SDK'yı kullanırsanız bunların hiçbirini görmezsiniz.
Her birinin mantıklı olduğu durumlar
Yerel Ollama; gizlilik en önemli önceliğinizse, model için yeterli belleğe sahip bir GPU'nuz varsa veya birçok modelle denemeler yaparsanız doğru bir seçenektir. Hiçbir şey makinenizden ayrılmaz ve token başına fatura kesilmez. Maliyetler donanım, elektrik ve zamanınız olarak karşınıza çıkar. Ollama'yi GUI ile kullanma rehberimiz, bu yolun daha dostane yönlerini kapsar.
Donanımınız yoksa, çok sayıda eşzamanlı istek gerekiyorsa, başkaları için bir bot veya hizmet çalıştırıyorsanız veya dizüstü bilgisayarınız açık olmasa bile çalışan sabit bir URL istiyorsanız barındırılan bir OpenAI uyumlu uç nokta daha iyi uyar. Tam anahtar 8 eşzamanlı istek ve dakikada 300 istek izni verir. Bağlam penceresi 100.000 token'dır; bu, birçok yerel kurulumun bellekte tutabileceğinden daha fazlasıdır.
Birçok kişi ikisini de kullanır: deneyler için yerel, sürekli çalışması gereken işler için barındırılan. Diğer yerel araçları değerlendiriyorsanız Ollama yazılım alternatifleri başlığını okuyun.
Yerel Ollama'dan barındırılana geçiş
- Önce OpenAI formatına geçin. Kodunuz
/api/chatçağırıyor ise, bunu Ollama'nın/v1yoluna işaret eden OpenAI SDK'sına taşıyın. Yerel olarak çalışmaya devam ettiğinden emin olun. - Bir anahtar edinin. Kaydolun ve API anahtarı sayfasında 0,50 $ değerindeki deneme sürümünü talep edin. Ödeme yöntemi gerektirmez ve 7 gün geçerlidir.
- Üç değeri değiştirin. Base URL'yi
https://api.ollamansfw.com/v1olarak, anahtarı kendi anahtarınız olarak, modeliuncensoredolarak ayarlayın. - Parametreleri kontrol edin. Temperature, top_p, stop, seed ve ceza parametreleri doğrudan iletilir. Ollama'nın
num_ctxveyakeep_alivegibi yalnızca yerel seçenekler geçerli değildir; pencere 100.000 token ile sabitlenmiştir. - Yeniden deneme mantığı ekleyin. Barındırılan API, bir sınıra ulaşıldığında
rate_limitedveyaconcurrencyile 429 döndürür ve geçici aşırı yüklenme sırasındaRetry-After: 5ile 429 döndürür. Yerel sunucular nadiren böyle yapar; bu nedenle mevcut kod bunu işlemeyebilir.
Geçişten sonra bir şey başarısız olursa, yanlış portlar ve eksik model adları gibi sık nedenları kapsayan yaygın Ollama API hataları hakkındaki makaleye bakın.
Barındırılanın maliyeti ve yapamayacakları
Faturalandırma ön ödemeli krediden kullandıkça öde esasına göredir: 1M giriş token'ı başına $0,15 ve 1M çıktı token'ı başına $0,50. 1.000 giriş ve 400 çıktı token'ı içeren bir sohbet dönüşü $0,00015 + $0,0002 = $0,00035 tutarındadır; bu nedenle $20 yaklaşık 57.000 böyle dönüşü karşılar. Başarısız veya reddedilen istekler için ücret alınmaz ve kredi asla sona ermez. Bakiye yüklemeler $20 ile $500 arasında değişir ve $50'den itibaren +%5, $100'den itibaren +%10 ve $200'den itibaren +%15 bonus sunar. Ödeme yalnızca kripto ile yapılır (TRC20 üzerinde USDT veya Base üzerinde USDC). fiyatlandırma sayfası hakkında daha fazla bilgi.
Bilmeniz gereken sınırlamalar: yalnızca metin, yani gömme, görüntü oluşturma veya ince ayar yok. Yerel gömme kullanıyorsanız, onları yerel tutun. Model, yasal yetişkin kullanımı için içerik reddi olmadan yanıt verecek şekilde ayarlanmıştır. Reşit olmayanlar içeren cinsel içerik asla izin verilmez. İstemler eğitim için kullanılmaz.
Daha fazla kılavuz
Sorular ve cevaplar
Ollama API'si OpenAI API'si ile uyumlu mu?
Kısmen. Ollama'nın /api altında yerleşik rotaları ve /v1/chat/completions gibi OpenAI tarzı rotaları vardır; bu nedenle OpenAI SDK istemcileri ona bağlanabilir.
Yerel Ollama'dan barındırılan bir uç noktaya geçmek için neyi değiştirmeliyim?
Temel URL'yi, API anahtarını ve model adını. Kodunuz zaten OpenAI SDK'sını kullanıyorsa, başka hiçbir şeyi değiştirmeniz gerekmez.
Barındırılan API, Ollama gibi embedding'leri destekliyor mu?
Hayır. Sadece metin üretimi desteklenir: sohbet tamamlamaları ve yanıtlar; embedding, görüntü veya fine-tuning yoktur.
Ollama ücretsiz mi?
Yazılımı indirmek ve çalıştırmak ücretsizdir. Donanım ve elektrik için hâlâ ödeme yaparsınız; barındırılan API ise token başına ücretlendirme yapar.