Ollama ile LiteLLM Nasıl Kullanılır

Efe Demir

Efe Demir

5 June 2025

Ollama ile LiteLLM Nasıl Kullanılır

Büyük Dil Modelleri (LLM'ler) uygulamalarımızı oluşturma şeklimizi dönüştürüyor, ancak yalnızca bulut tabanlı API'lere güvenmek her zaman ideal değildir. Gecikme süresi, maliyet, veri gizliliği ve çevrimdışı yeteneklere duyulan ihtiyaç, genellikle geliştiricileri modelleri yerel olarak çalıştırmaya yöneltir. Ollama, Llama 3, Mistral ve Phi-3 gibi güçlü açık kaynaklı LLM'leri doğrudan makinenizde (macOS, Linux, Windows) kolayca çalıştırmak için harika bir araç olarak ortaya çıktı.

Ancak, yerel veya uzaktan olsun, farklı LLM'lerle etkileşim kurmak genellikle modele özgü kod yazmayı gerektirir. İşte bu noktada LiteLLM devreye giriyor. LiteLLM, Ollama, OpenAI, Anthropic, Cohere ve daha birçokları dahil olmak üzere 100'den fazla farklı LLM API'si ile etkileşim kurmak için standartlaştırılmış, hafif bir arayüz sağlar. LiteLLM'yi kullanarak, bir kez kod yazabilir ve yerel olarak çalışan Ollama modelleriniz dahil olmak üzere, farklı modeller ve sağlayıcılar arasında minimum değişiklikle sorunsuz bir şekilde geçiş yapabilirsiniz.

Bu eğitim, yerel makinenizde çalışan Ollama modelleriyle etkileşim kurmak için LiteLLM'yi nasıl kuracağınız ve kullanacağınız konusunda ayrıntılı, adım adım bir rehber sunmaktadır. Kurulum ve temel yapılandırmadan API çağrıları yapmaya, yanıtları yayınlamaya ve daha gelişmiş LiteLLM özelliklerinden yararlanmaya kadar her şeyi ele alacağız.

💡
Güzel API Dokümantasyonu oluşturan harika bir API Test aracı mı istiyorsunuz?

Maksimum verimlilikle birlikte çalışmak için Geliştirici Ekibiniz için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
button

Giriş: Neden LiteLLM ve Ollama?

Teknik adımlara dalmadan önce, birlikte çalıştığımız araçları ve bunların kombinasyonunun neden güçlü olduğunu anlayalım.

LiteLLM Nedir?

LiteLLM, çok çeşitli LLM API'leriyle etkileşim kurmak için birleşik bir arayüz görevi gören hafif bir Python kütüphanesidir. OpenAI, Anthropic, Cohere, Google Gemini, Azure OpenAI, Replicate, Hugging Face ve ve Ollama gibi yerel modeller için farklı SDK'lar veya API istek formatları öğrenip uygulamak yerine, tek, tutarlı bir işlev çağrısı kullanırsınız: litellm.completion(). LiteLLM, isteğinizi hedef model sağlayıcısının gerektirdiği belirli formata çevirmenin altında yatan karmaşıklığı yönetir.

LiteLLM'nin Temel Özellikleri:

Neden LiteLLM'yi Ollama ile Kullanmalısınız?

Ollama ve LiteLLM'yi birleştirmek çeşitli avantajlar sunar:

  1. Standardizasyon: LiteLLM'nin standart arayüzünü kullanarak uygulama mantığı yazın, bu da yerel bir Ollama modeli (geliştirme, gizlilik, çevrimdışı kullanım için) ve güçlü bir bulut modeli (üretim, belirli yetenekler için) arasında temel kodu yeniden yazmadan sorunsuz bir şekilde geçiş yapmanızı sağlar.
  2. Basitleştirilmiş Yerel Entegrasyon: LiteLLM, Ollama'nın API'siyle Python uygulamalarınız içinde etkileşim kurmayı, istek biçimlendirmeyi ve yanıt ayrıştırmayı kolaylaştırır.
  3. Esneklik: LiteLLM çağrınızda model adını değiştirerek (örneğin, ollama/llama3 yerine ollama/mistral) Ollama aracılığıyla kullanılabilen farklı yerel modellerle kolayca deneyler yapın.
  4. LiteLLM Özelliklerinden Yararlanın: Yerel Ollama modellerini kullanırken bile, yeniden denemeler, yedeklemeler, günlük kaydı ve maliyet takibi gibi LiteLLM özelliklerinden yararlanın.
  5. Hibrit Yaklaşımlar: Maliyet, gecikme süresi veya görev gereksinimleri gibi faktörlere bağlı olarak istekleri yerel Ollama modellerine veya uzaktaki API'lere akıllıca yönlendirebilen uygulamalar oluşturun; bunların tümü LiteLLM aracılığıyla yönetilir (özellikle proxy'si aracılığıyla).

LiteLLM ve Ollama'yı Kullanmaya Hazırlanma

Başlamadan önce, gerekli araçların yüklü ve kurulu olduğundan emin olun.

LiteLLM bir Python kütüphanesidir, bu nedenle sisteminizde Python'un yüklü olması gerekir. LiteLLM, Python 3.8 veya daha yüksek bir sürüm gerektirir.

python --version
# veya
python3 --version

Ollama'yı Yükleyin ve Kurun

LiteLLM Python kodunuzu çalıştırmayı planladığınız makinede (veya farklı bir makinede çalışıyorsa ağ üzerinden erişilebilir) Ollama'nın yüklü ve çalışır durumda olması gerekir.

ollama --version

Bu, yüklü Ollama sürümünü görüntülemelidir.

Bir Ollama Modeli Çekme

Ollama'nın istekleri sunabilmesi için en az bir modelin indirilmesi gerekir. Llama 3 (8B instruct varyantı) gibi popüler bir model çekelim.

ollama pull llama3

Bu, Llama 3 model dosyalarını indirecektir. İnternet bağlantınıza ve model boyutuna bağlı olarak biraz zaman alabilir. llama3'ü Ollama kütüphanesinde bulunan diğer modellerle değiştirebilirsiniz (örneğin, mistral, phi3, gemma:2b). Tam liste için Ollama web sitesini kontrol edin.

LiteLLM'yi Yükleyin

Python ve Ollama hazır olduğunda, pip kullanarak LiteLLM'yi yükleyin.

pip install litellm
# veya pip3 kullanıyorsanız
# pip3 install litellm
python # veya python3
>>> import litellm
>>> litellm.__version__
# Bu, hatalar olmadan yüklü sürümü yazdırmalıdır.
>>> exit()

Ollama'yı Yerel Olarak Çalıştırın

LiteLLM'nin Ollama API sunucusuna bağlanması gerekir. Ollama'nın çalıştığından emin olmanız gerekir.

Ollama'nın Çalıştığını Doğrulama

ollama serve

Bu komut sunucuyu başlatır ve genellikle siz durdurana kadar (Ctrl+C) o terminal penceresinde çalışmaya devam eder. Bunu arka planda veya uzun süreli kullanım için bir sistem hizmeti olarak çalıştırmak isteyebilirsiniz.

curl http://localhost:11434

Ollama is running gibi bir yanıt almalısınız. "connection refused" hatası alırsanız, Ollama büyük olasılıkla çalışmıyor veya farklı bir bağlantı noktası/adreste yapılandırılmış demektir.

Varsayılan olarak, Ollama API'sini şurada sunar:

LiteLLM, bu varsayılan adresi bilmek için önceden yapılandırılmıştır. Ollama örneğiniz farklı bir ana bilgisayarda veya bağlantı noktasında çalışıyorsa (örneğin, bağlantı noktası eşlemesi olan bir Docker kapsayıcısının içinde veya uzaktaki bir sunucuda), LiteLLM'ye onu nerede bulacağını söylemeniz gerekir (Yapılandırma bölümünde ele alınmıştır). Çoğu standart yerel kurulum için, varsayılan kutudan çıkar.

Ollama'ya İlk LiteLLM Çağrınızı Yapın

Şimdi, LiteLLM kullanarak Ollama aracılığıyla çalışan llama3 modeline bir istek göndermek için basit bir Python betiği yazalım.

Temel Python Betiği

Yeni bir Python dosyası oluşturun (örneğin, ollama_test.py) ve aşağıdaki kodu ekleyin:

import litellm
import os

# İsteğe bağlı: Neler olduğunu görmek için LiteLLM için ayrıntılı günlük kaydı ayarlayın
# litellm.set_verbose = True

# Model adını tanımlayın - önemli: "ollama/" ile önek ekleyin
# 'llama3'ün `ollama pull llama3` ile çektiğiniz model olduğundan emin olun
model_name = "ollama/llama3"

# Sohbet tamamlaması için mesajları tanımlayın
messages = [
    {"role": "system", "content": "Yardımsever bir asistansınız."},
    {"role": "user", "content": "Gökyüzü neden mavi?"}
]

try:
    print(f"--- {model_name} modeline istek gönderiliyor ---")
    # litellm.completion işlevini çağırın
    response = litellm.completion(
        model=model_name,
        messages=messages
    )

    # Yanıtı yazdırın
    print("--- Yanıt ---")
    # Yanıt nesnesi OpenAI yapısını yansıtır
    # Mesaj içeriğine şu şekilde erişin:
    message_content = response.choices[0].message.content
    print(message_content)

    # İnceleme için tüm yanıt nesnesini de yazdırabilirsiniz
    # print("\n--- Tam Yanıt Nesnesi ---")
    # print(response)

except Exception as e:
    print(f"Bir hata oluştu: {e}")

İşlevi parçalayalım:

Bu noktaları göz önünde bulundurarak, işlevi çalıştıralım:

Ollama'nın çalıştığından (Adım 4'te doğrulandığı gibi) ve llama3 modelini çektiğinizden emin olun. Ardından, betiği terminalinizden çalıştırın:

python ollama_test.py

Şuna benzer bir çıktı görmelisiniz (tam metin modelin yanıtına göre değişecektir):

--- ollama/llama3 modeline istek gönderiliyor ---
--- Yanıt ---
Gökyüzü, Rayleigh saçılması adı verilen bir olgu nedeniyle mavi görünür. Dünyanın atmosferine ulaşan güneş ışığı, farklı dalga boylarına sahip farklı renklerden oluşur. Mavi ve mor ışık daha kısa dalga boylarına sahipken, kırmızı ve turuncu ışık daha uzun dalga boylarına sahiptir.

Güneş ışığı atmosferden geçerken, küçük gaz molekülleriyle (çoğunlukla azot ve oksijen) çarpışır. Bu moleküller güneş ışığını her yöne saçar. Daha kısa dalga boyları (mavi ve mor), daha uzun dalga boylarından (kırmızı ve turuncu) daha etkili bir şekilde saçılır.

Gözlerimiz mora göre maviye daha duyarlıdır ve bazı mor ışık atmosferin üst kısımlarında emilir, bu nedenle güneş yüksekteyken gündüzleri gökyüzünü öncelikle mavi olarak algılarız.

Gün doğumu ve gün batımına yakın, güneş ışığı gözlerimize ulaşmak için daha fazla atmosferden geçer. Mavi ışığın çoğu dağılır ve daha uzun dalga boylu kırmızı ve turuncu ışığın bize ulaşmasına izin verir, bu nedenle gün doğumu ve gün batımları genellikle kırmızımsı veya turuncumsu görünür.

Tebrikler! Yerel Ollama modelinizle iletişim kurmak için LiteLLM'yi başarıyla kullandınız.

Yayın Yanıtları Oluşturun

Etkileşimli uygulamalar (sohbet botları gibi) veya uzun yanıtlar oluştururken, tüm tamamlamanın tamamlanmasını beklemek kötü bir kullanıcı deneyimine yol açabilir. Yayın, yanıtı oluşturulduğu gibi token token almayı sağlar. LiteLLM bunu kolaylaştırır.

Neden Yayın?

LiteLLM ile Yayın Uygulama

Önceki betiği (ollama_test.py) yayını etkinleştirmek için değiştirin:

import litellm
import os

# litellm.set_verbose = True # Hata ayıklama için isteğe bağlı

model_name = "ollama/llama3"
messages = [
    {"role": "system", "content": "Öz bir şairsiniz."},
    {"role": "user", "content": "Bir kedi hakkında kısa bir haiku yazın."}
]

try:
    print(f"--- {model_name} modeline yayın isteği gönderiliyor ---")
    # stream=True'yi ayarlayın
    response_stream = litellm.completion(
        model=model_name,
        messages=messages,
        stream=True  # Yayını etkinleştir
    )

    print("--- Yayın Yanıtı ---")
    full_response = ""
    # Yayın parçacıklarını yineleyin
    for chunk in response_stream:
        # Her bir parçacık, OpenAI yayın parçacık yapısını taklit eder
        # İçerik deltasına şu şekilde erişin:
        content_delta = chunk.choices[0].delta.content

        if content_delta:  # Bu parçacıkta yeni içerik olup olmadığını kontrol edin
            print(content_delta, end="", flush=True) # Yeni satır eklemeden hemen yazdırın
            full_response += content_delta

    print("\n--- Yayın Sonu ---")
    # print(f"\nTamamen yeniden yapılandırılmış yanıt:\n{full_response}") # İsteğe bağlı: sonunda tam yanıtı gösterin

except Exception as e:
    print(f"\nBir hata oluştu: {e}")

Değişiklikler:

  1. stream=True: Bu parametre, litellm.completion çağrısına eklendi.
  2. Yineleme: İşlev artık bir yineleyici (response_stream) döndürür. Bu yineleyici üzerinde döngü yapıyoruz.
  3. Parçacık İşleme: Döngüdeki her chunk, yanıtın küçük bir bölümünü temsil eder. Yeni metin parçasını chunk.choices[0].delta.content kullanarak erişiyoruz. delta özniteliği, önceki parçacıktan (genellikle birkaç karakter veya bir kelime) farkı içerir.
  4. print(..., end="", flush=True): Parçacık içeriğini hemen, yeni bir satır eklemeden yazdırır, çıktıyı hemen terminalde görünmesini sağlamak için çıktı arabelleğini temizler.

Bu güncellenmiş betiği çalıştırın:

python ollama_test.py

Haiku'nun kelime kelime veya karakter karakter terminalinizde göründüğünü göreceksiniz, bu da yayın davranışını gösterir.

LiteLLM + Ollama Kurulumunu Yapılandırma

LiteLLM, varsayılan Ollama kurulumlarıyla kutudan çıktığı gibi çalışırken, kurulumunuz standart http://localhost:11434'ten farklıysa yapılandırmanız gerekebilir.

Varsayılan Davranış (Yerel Ana Bilgisayar)

Belirtildiği gibi, ollama/ önekini kullandığınızda LiteLLM otomatik olarak Ollama'nın http://localhost:11434 adresinde çalıştığını varsayar. Bu sizin kurulumunuzsa, ek yapılandırmaya gerek yoktur.

Ortam Değişkenlerini Kullanma (İsteğe Bağlı)

Ollama farklı bir ana bilgisayarda veya bağlantı noktasında çalışıyorsa, LiteLLM'ye onu nerede bulacağını ortam değişkenlerini kullanarak söyleyebilirsiniz. LiteLLM, API uç noktalarını yapılandırmak için belirli ortam değişkenlerini kontrol eder. Belirli bir Ollama modeli (veya genel bir geçersiz kılma istiyorsanız tüm Ollama modelleri) için, temel URL'sini ayarlayabilirsiniz.

Örneğin, Ollama örneğiniz http://192.168.1.100:11434 adresinde çalışıyorsa, Python betiğinizi çalıştırmadan önce bir ortam değişkeni ayarlayabilirsiniz:

Linux/macOS:

export OLLAMA_API_BASE="http://192.168.1.100:11434"
python your_script.py

Windows (Komut İstemi):

set OLLAMA_API_BASE=http://192.168.1.100:11434
python your_script.py

Windows (PowerShell):

$env:OLLAMA_API_BASE = "http://192.168.1.100:11434"
python your_script.py

Şimdi, betiğiniz litellm.completion(model="ollama/llama3", ...) çağrısı yaptığında, LiteLLM OLLAMA_API_BASE ortam değişkenini arayacak ve varsayılan localhost yerine o URL'yi kullanacaktır.

Not: OLLAMA_API_BASE'i ayarlamak, ollama/ ile başlayan tüm modeller için temel URL'yi geçersiz kılar. Gerekirse daha ayrıntılı ortam değişkeni kontrolleri için LiteLLM belgelerine bakın (örneğin, belirli bir model takma adı için temel URL'yi ayarlama).

Bir Yapılandırma Dosyası Kullanma (İsteğe Bağlı)

Birden fazla model, özel ayarlar veya ortam değişkenlerinden kaçınma içeren daha karmaşık yapılandırmalar için, LiteLLM bir yapılandırma dosyasını (config.yaml veya belirtilen yol) destekler.

Betiğinizle aynı dizinde (veya başka bir yerde) bir config.yaml dosyası oluşturun ve LiteLLM'yi ona yönlendirin:

# config.yaml
model_list:
  - model_name: ollama/llama3 # litellm.completion'da kullandığınız ad
    litellm_params:
      model: ollama/llama3 # Sağlayıcı için gerçek model tanımlayıcısı
      api_base: "http://localhost:11434" # Varsayılan, gerekirse değiştirin

  - model_name: ollama/mistral-remote # Örnek: Uzak bir Ollama için takma ad
    litellm_params:
      model: ollama/mistral # Ollama 'mistral' bekliyor
      api_base: "http://192.168.1.100:11434"

  - model_name: gpt-4o-mini # Örnek: Ollama olmayan bir model dahil etme
    litellm_params:
      model: gpt-4o-mini
      api_key: "os.environ/OPENAI_API_KEY" # Güvenli bir şekilde env var'dan okuyun

general_settings:
  # İsteğe bağlı: Zaman aşımları gibi genel ayarları ayarlayın
  # timeout: 300 # 5 dakika

# Yapılandırmada özel ortam değişkenleri de tanımlayabilirsiniz
environment_variables:
  OPENAI_API_KEY: "" # Yer tutucular veya gerçek anahtarlar tanımlayın (daha az güvenli)

Bu yapılandırma dosyasını kullanmak için, LiteLLM'ye onu yüklemesini söylemeniz gerekir; genellikle uygulamanızın başında:

import litellm
import os

# Yapılandırmayı geçerli dizindeki config.yaml dosyasından yükleyin
# Ayrıca mutlak bir yol da sağlayabilirsiniz: litellm.load_config("path/to/your/config.yaml")
try:
    litellm.load_config()
    print("LiteLLM yapılandırması başarıyla yüklendi.")
except Exception as e:
    print(f"Uyarı: LiteLLM yapılandırması yüklenemedi. Varsayılanlar kullanılıyor. Hata: {e}")


# Artık yapılandırmada tanımlanan model adlarını kullanabilirsiniz
try:
    # Yapılandırmadan api_base'i alabilecek standart ollama/llama3'ü kullanma
    response_local = litellm.completion(model="ollama/llama3", messages=[{"role": "user", "content": "Yerel testi"}])
    print("Yerel Llama3 Yanıtı:", response_local.choices[0].message.content[:50], "...") # Parçacık yazdırın

    # Uzak mistral modeli için tanımlanan takma adı kullanma
    # response_remote = litellm.completion(model="ollama/mistral-remote", messages=[{"role": "user", "content": "Uzak testi"}])
    # print("Uzak Mistral Yanıtı:", response_remote.choices[0].message.content[:50], "...")

except Exception as e:
    print(f"Tamamlama sırasında bir hata oluştu: {e}")

Yapılandırma dosyası, potansiyel olarak farklı makinelerde çalışan Ollama örnekleri dahil olmak üzere, birden fazla model için ayarları yönetmek için yapılandırılmış bir yol sunar.

Temel çağrılar ve yayın ötesinde, LiteLLM, Ollama ile sorunsuz bir şekilde çalışan sağlamlığı ve gözlemlenebilirliği artıran özellikler sunar.

Model Takma Adı Verme

Yapılandırma dosyası takma ad tanımlamaya izin verirken, bunları programlı olarak da kaydedebilirsiniz. Bu, model adlarını basitleştirmek veya genel adları belirli Ollama modellerine eşlemek için kullanışlıdır.

import litellm

# Bir takma ad tanımlayın: "my-local-llm"yi "ollama/llama3"e eşleyin
litellm.register_model({
    "my-local-llm": {
        "model": "ollama/llama3",
        # Bu takma ad için gerekirse burada api_base'i de belirleyebilirsiniz
        # "api_base": "http://localhost:11434"
    }
})

# Artık tamamlama çağrınızda takma adı kullanın
messages = [{"role": "user", "content": "Model takma adı verme hakkında bana bilgi verin."}]
response = litellm.completion(model="my-local-llm", messages=messages)

print(response.choices[0].message.content)

Hata İşleme ve Yeniden Denemeler

Ağ arızaları veya geçici Ollama sorunları meydana gelebilir. LiteLLM'nin yerleşik yeniden deneme mantığı vardır.

import litellm
import time

# Örnek: Ollama'yı geçici olarak kullanılamaz hale getirin (örneğin, `ollama serve`'ü durdurun)
print("Ollama'yı 10 saniye durdurma (mümkünse)... Bunu manuel olarak yapmanız gerekebilir.")
# os.system("ollama stop") # Bu komut mevcut olmayabilir; manuel durdurma daha güvenlidir
# time.sleep(10)
# print("Ollama'yı yeniden başlatma... Bunu manuel olarak yapmanız gerekebilir.")
# os.system("ollama serve &") # Arka planda başlat
# time.sleep(5) # Başlaması için zaman tanıyın

messages = [{"role": "user", "content": "Yeniden deneme çalışıyor mu?"}]

try:
    # LiteLLM, belirli bağlantı hatalarında otomatik olarak yeniden deneyecektir
    # Yeniden deneme sayısını, geri alma faktörünü vb. yapılandırabilirsiniz.
    response = litellm.completion(
        model="ollama/llama3",
        messages=messages,
        num_retries=3,       # En fazla 3 yeniden deneme girişimi
        timeout=10           # Her istek denemesi için bir zaman aşımı ayarlayın (saniye)
    )
    print("Yeniden denemelerden sonra (veya ilk denemede) başarı:")
    print(response.choices[0].message.content)

except Exception as e:
    # Bu, yeniden denemelerden sonra devam eden hataları (örneğin, model bulunamadı, yapılandırma hatası) yakalar
    # Veya bağlantı hataları için tüm yeniden denemeler başarısız olursa.
    print(f"Yeniden denemelerden sonra bir hata oluştu: {e}")

LiteLLM, yaygın geçici ağ hatalarını akıllıca yeniden dener. Yeniden deneme davranışını genel olarak veya çağrı başına özelleştirebilirsiniz.

Günlük Kaydı ve Geri Aramalar

LiteLLM, istek/yanıt verilerini kaydetmek veya başarılı çağrılarda veya hatalarda özel işlevleri (geri aramalar) tetiklemek için kancalar sağlar. Bu, izleme, hata ayıklama ve maliyet takibi için paha biçilmezdir (ancak maliyet takibi, sanal maliyetler atamadığınız sürece yerel Ollama için daha az alakalıdır).

import litellm
import logging

# Temel günlük kaydını yapılandırın
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')
logger = logging.getLogger(__name__)

# Basit bir başarı geri arama işlevi tanımlayın
def log_success(kwargs, completion_response, start_time, end_time):
    """Başarılı bir LLM çağrısı hakkında ayrıntıları kaydeder."""
    model = kwargs.get("model", "unknown_model")
    input_text = kwargs.get("messages", [])[-1]['content'] if kwargs.get("messages") else "N/A"
    output_text = completion_response.choices[0].message.content[:50] + "..." # Parçacık
    duration = (end_time - start_time).total_seconds()
    logger.info(f"Başarılı! Model: {model}, Süre: {duration:.2f}s, Giriş: '{input_text[:30]}...', Çıkış: '{output_text}'")

# Basit bir başarısızlık geri arama işlevi tanımlayın
def log_failure(kwargs, exception, start_time, end_time):
    """Başarısız bir LLM çağrısı hakkında ayrıntıları kaydeder."""
    model = kwargs.get("model", "unknown_model")
    duration = (end_time - start_time).total_seconds()
    logger.error(f"Başarısız! Model: {model}, Süre: {duration:.2f}s, Hata: {exception}")


# Geri aramaları LiteLLM'ye kaydedin
litellm.success_callback = [log_success]
litellm.failure_callback = [log_failure]

# Şimdi bir çağrı yapın - geri aramalar otomatik olarak tetiklenecektir
messages = [{"role": "user", "content": "LiteLLM'de geri aramalar nasıl çalışır?"}]
try:
    response = litellm.completion(model="ollama/llama3", messages=messages)
    # print(response.choices[0].message.content) # Yine de yanıtı kullanabilirsiniz
except Exception as e:
    pass # Başarısızlık geri araması zaten günlük kaydını işledi

# Başarısız olabilecek bir çağrı örneği (örne

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin