toolkitbox

~/ / Yapay zeka makaleleri / VPS'te yerel LLM / Yerel bir modeli kodunuzdan çağırmak: Ollama'da yapılandırılmış çıktılar ve OpenAI uyumlu API

Yerel bir modeli kodunuzdan çağırmak: Ollama'da yapılandırılmış çıktılar ve OpenAI uyumlu API

Ollama sunucunuzda çalışmaya başladıktan sonra kendi kodunuzun iki şeye ihtiyacı olur: yanıtları sabit bir biçimde almanın bir yolu ve sunucuya OpenAI API'sini zaten konuşan kitaplıklardan erişmenin bir yolu. Ollama ikisini de belgelemiştir. Bu makale yapılandırılmış çıktılar sayfasını ve OpenAI uyumluluğu sayfasını özetler ve belgelerin neyin desteklenmediğini söylediğini gösterir.

Yayın: · 3 dk okuma · Resmî Ollama belgelerine göre 2026-10-26 tarihinde kontrol edildi. Desteklenen özellikler sürümler arasında değişir; bu yüzden güncel belgelerden doğrulayın.

Aynı sunucuyu çağırmanın iki yolu

Ollama'nın kendi API'si vardır; belgelerdeki örnekler http://localhost:11434/api/chat adresine POST isteği gönderir. Ayrıca /v1/ altında OpenAI uyumlu bir API sunar; böylece mevcut OpenAI istemcileri yalnızca temel URL değiştirilerek sunucuyla konuşabilir.

ÖğeNative APIOpenAI-compatible API
Temel adreshttp://localhost:11434/api/chathttp://localhost:11434/v1/
API anahtarıörneklerde belirtilmiyorapi_key='ollama'; sayfa bunu zorunlu ama yok sayılan bir değer olarak işaretliyor
Yapılandırılmış çıktı alanıformatresponse_format

API anahtarı satırı, belgelerdeki yerel sunucu örneğinden gelir. Bulut için sayfa, base_url olarak https://ollama.com/v1 adresini ve Ollama hesabınızdan alınan bir API anahtarını gösterir; bu farklı bir durumdur.

Yapılandırılmış çıktılar: format alanı

format alanı yanıtı sınırlar. Genel JSON için json dizesini ya da bir JSON şema nesnesini kabul eder. Belgelerdeki cURL örneklerinde istek gövdesinde dört alan vardır: model, messages, false olarak ayarlanmış stream ve format. Örneklerdeki şemada type, properties ve required bulunur.

format değeriBelgelere göre etkisi
"json"Model genel JSON ile yanıt verir
bir JSON şema nesnesiYanıt o şemayla sınırlanır
  • Belgeler, modelin yanıtını temellendirmek için JSON şemasını istemde (prompt) bir dize olarak da vermenin ideal olduğunu söyler.
  • Ayrıca daha belirleyici tamamlamalar için temperature değerinin, örneğin 0'a, düşürülmesini söyler.
  • Python ve JavaScript için şemaların Pydantic veya Zod ile tanımlanmasını önerir; böylece doğrulama için yeniden kullanılabilirler.
  • Görsel modeller aynı format parametresini kabul eder. Belgelerdeki görsel örneği, bir şemayla birlikte bir görüntü iletir.
  • Sayfaya göre Ollama'nın bulutu şu anda yapılandırılmış çıktıları desteklemiyor.

Bir şemaya güvenmeden önce onu denetleyin. Aşağıdaki JSON Schema Validator, şemanın kendisinin geçerli olup olmadığını ve örnek bir yanıtın şemaya uyup uymadığını söyler.

Gönderdiğiniz şemayı denetleyin

Hatalı bir şema geç, ilk istek modele ulaştığında başarısız olabilir. Şemayı ve beklediğiniz JSON'dan bir örneği yapıştırın, ikisinin uyuşup uyuşmadığına bakın.

Deneyin: JSON Schema Validator

Desteklediği anahtar sözcükler için JSON Schema Draft 2020-12'yi izler. $ref'i yalnızca aynı şema içinde okur.

Her şey tarayıcınızda çalışır. Şema ve veri yüklenmez.

OpenAI uyumlu uç noktalar

Uç noktaSayfanın listelediğiDesteklenmeyen olarak listelenen
/v1/chat/completionssohbet, akış (streaming), JSON mode, yeniden üretilebilir çıktılar, görsel, tools, akıl yürütme denetimilogprobs, tool_choice, logit_bias, user, n; görsel URL'leri (base64 kullanın)
/v1/completionstamamlamalar, akış (streaming), JSON mode, yeniden üretilebilir çıktılarlogprobs, best_of, echo, logit_bias, user, n
/v1/modelsmodelleri listeleme ve getirmelistelenmemiş
/v1/embeddingsdize veya dize dizisi girdisi, kodlama biçimi, boyutlartoken dizileri, user
/v1/responsesakış (streaming), işlev çağırma araçları (tools), akıl yürütme özetleridurum bilgili istekler: previous_response_id, conversation, truncation
  • Sohbet uç noktasında sayfa, desteklenen istek alanları arasında şunları sayar: response_format, tools, stream, stream_options, seed, stop, temperature, top_p, max_tokens, frequency_penalty ve presence_penalty.
  • Sayfa, yapılandırılmış çıktıların OpenAI uyumlu API üzerinden response_format ile çalıştığını belirtir.
  • Kodunuz desteklenmeyenler sütunundaki bir alanı kullanıyorsa, sunucunun onu yok saymasını beklemek yerine kodu değiştirin. Belgeler, desteklenmeyen değerlerin 400 hatası döndürdüğü konuşma (speech) dışında, desteklenmeyen her alanın nasıl işlendiğini söylemez.

Araçlar ve araç tanımlarının biçimi

Hem native API hem de OpenAI uyumlu sohbet uç noktası tools kabul eder. Araçları OpenAI biçiminde tanımlıyorsanız, bu sitedeki Tool Definition Checker, göndermeden önce adları, açıklamaları ve parametre şemalarını o biçime göre denetler.

Yanıt hâlâ geçerli JSON olmadığında

Çıktıyı sınırlamak size geçerli JSON vermeyi amaçlar, ancak kodunuz yine de başka bir modelden, eski bir sürümden veya format olmadan yapılan bir istekten metin alabilir. Aşağıdaki araç kod çitleri, sondaki virgüller ve yanlış tırnaklar gibi yaygın hataları onarır ve bir onarım anlamı değiştirdiğinde uyarır.

Deneyin: LLM JSON Repair

Girinti

Yalnızca tek bir açık yanıtı olan düzeltmeler uygulanır. Geri kalan her şey tahmin edilmek yerine konumuyla birlikte bildirilir.

Her şey tarayıcınızda çalışır. Yapıştırdığınız metin yüklenmez.

Erişim üzerine bir not

Belgelerin yerel örneği, API anahtarının zorunlu ama yok sayıldığını söyler. Bizim yorumumuz, belgelerden bir ifade değil: anahtar sunucuyu korumaz; bu yüzden Ollama'yı varsayılan adresinde tutun ve başka bir makinenin ona erişmesi gerekiyorsa önüne kimlik doğrulama koyun.

Kaynaklar

Sırada ne okunmalı