Ana içeriğe atla

LiteLLM: Uygulamalı Örneklerle Bir Rehber

LiteLLM'in ne olduğunu ve birden fazla LLM sağlayıcısına birleşik API çağrıları için nasıl kullanılacağını öğrenin: temel API kullanımı, hata yönetimi, yedekler, akış, yapılandırılmış çıktılar ve maliyet takibi.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Farklı LLM sağlayıcıları arasında geçiş yapmak, tüm kod tabanınızı yeniden yazmanızı gerektirmemelidir. Ancak bugün birden fazla yapay zeka servisiyle çalıştığınızda olan tam olarak budur. Her sağlayıcının kendi SDK’sı, kimlik doğrulama yöntemi ve yanıt formatı vardır. LiteLLM bunu birleşik bir arayüzle çözer.

Bu eğitimde, LiteLLM’in temel parçalarını açıklayacak ve basit API çağrılarıyla başlayıp akış yanıtlarına, yapılandırılmış çıktılara ve maliyet takibine kadar nasıl ilerleyeceğinizi göstereceğim.

LiteLLM Nedir?

LiteLLM yapay zeka modelleri için evrensel bir çevirmen gibi çalışan açık kaynaklı bir Python kütüphanesidir. Her sağlayıcı için farklı API’leri öğrenmek yerine, 100’den fazla LLM servisine bağlanan tek bir arayüz kullanırsınız.

Çerçevenin iki ana parçası vardır. Python SDK’sı, kodu bir kez yazıp herhangi bir sağlayıcıyla çalıştırmanıza olanak tanır. Proxy sunucusu ise, yapay zeka servislerini ölçekli şekilde yönetmesi gereken ekipler ve şirketler için merkezi bir ağ geçidi görevi görür.

LiteLLM size şu ek faydaları sağlar:

  • Yerleşik maliyet takibi: Birden fazla fatura sistemini kontrol etmek yerine tüm sağlayıcılardaki harcamayı tek bir panoda görün
  • Otomatik arızadan kurtarma (failover): Bir sağlayıcı kapandığında veya oran limitlerine takıldığında, LiteLLM otomatik olarak yedek seçenekleri dener
  • Kendi sunucunuzda barındırma seçeneği: Veri gizliliği veya uyumluluk gerekiyorsa her şeyi kendi sunucularınızda çalıştırın

Şunu unutmayın: OpenRouter da çoklu LLM’lere benzer şekilde birleşik erişim sağlar, ancak farklı fiyatlandırma ve özellik setleriyle.

Proxy sunucusu; ekip başına harcama limitleri, projeler genelinde kullanım takibi ve merkezi API anahtarı yönetimi ekler. Tüm yapılandırma basit YAML dosyalarıyla yapılır.

LiteLLM farklı türde kullanıcılar için uygundur:

  • Bireysel geliştiriciler: Her yerde hesap açmadan birden fazla modeli denemek isteyenler
  • Küçük ekipler: Maliyet görünürlüğüne ihtiyaç duyan ve satıcıya bağımlı kalmak istemeyenler
  • Büyük şirketler: Merkezi yönetim, bütçe kontrolleri ve ayrıntılı kullanım analitiği gerektirenler

Kütüphane MIT lisanslıdır ve tamamen açık kaynaktır. Kodu inceleyebilir, ihtiyaçlarınıza göre değiştirebilir veya projeye katkıda bulunabilirsiniz.

Artık LiteLLM’in neler yapabildiğini bildiğinize göre, ortamınızı nasıl kuracağınıza bakalım.

Önkoşullar

LiteLLM’i kullanmaya başlamadan önce birkaç şeyi kurmanız gerekir. Daha önce yapay zeka modelleriyle çalıştıysanız bunların çoğu muhtemelen hazırdır.

Python ortamı

Python 3.7 veya daha yenisine ihtiyacınız var. Günümüzde çoğu sistemde bu mevcuttur, ancak sürümünüzü şu komutla kontrol edebilirsiniz:

import sys
print(f"Python version: {sys.version_info.major}.{sys.version_info.minor}")

Paket kurulumu

LiteLLM ve python-dotenv paketlerini ortam değişkenlerini yönetmek için kurun:

uv add litellm python-dotenv
# or with pip: pip install litellm python-dotenv

API anahtarları

Kullanmak istediğiniz sağlayıcılardan API anahtarlarına ihtiyacınız olacak. Bu eğitimde iki modelle çalışacağız:

Bunları proje dizininizdeki bir .env dosyasına kaydedin:

OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here

Ortam kontrolü

Kurulumunuzu kontrol etmek için bu betiği çalıştırın:

import os
import sys
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# Check Python version
print(f"Python version: {sys.version_info.major}.{sys.version_info.minor}")

# Check LiteLLM
try:
   import litellm
   print("✓ LiteLLM installed")
except ImportError:
   print("✗ LiteLLM not installed")

# Check API keys
openai_key = os.getenv("OPENAI_API_KEY")
anthropic_key = os.getenv("ANTHROPIC_API_KEY")

if openai_key:
   print(f"✓ OpenAI API key found")
else:
   print("✗ OpenAI API key not found")

if anthropic_key:
   print(f"✓ Anthropic API key found")
else:
   print("✗ Anthropic API key not found")
Python version: 3.11
✓ LiteLLM installed
✓ OpenAI API key found
✓ Anthropic API key found

Tüm yeşil onay işaretlerini görüyorsanız hazırsınız. Herhangi bir kontrol başarısız olursa, paketleri kurduğunuzdan ve API anahtarlarınızı .env dosyasına eklediğinizden emin olun.

LiteLLM ile İlk API Çağrınızı Yapmak

LiteLLM, OpenAI’den aşina olabileceğiniz aynı arayüzü kullanır, ancak herhangi bir sağlayıcıyla çalışır.

Temel kurulum

Şu içe aktarmalarla başlayın:

import litellm
from dotenv import load_dotenv

# Load your API keys
load_dotenv()

GPT-5’e yapılacak temel bir istek şu deseni izler: iletilerinizi tanımlayın, litellm.completion() çağrısını yapın ve yanıtı alın.

messages = [
   {"role": "user", "content": "Write a simple Python function that adds two numbers"}
]

response = litellm.completion(
   model="gpt-5",
   messages=messages
)

print(response.choices[0].message.content)
def add(a, b):
   """Return the sum of a and b."""
   return a + b

GPT-5’i LiteLLM üzerinden az önce çağırdınız. Yanıt nesnesi OpenAI’nin formatını izler; dolayısıyla daha önce onların API’sini kullandıysanız tanıdık gelecektir. Hangi modelin yanıt verdiğini görmek ve token kullanımını kontrol etmek isteyebilirsiniz:

print(f"Model used: {response.model}")
print(f"Response ID: {response.id}")
print(f"Total tokens: {response.usage.total_tokens}")
Model used: gpt-5-2025-08-07
Response ID: chatcmpl-CIbZWUDE1amW2vHtHDmieTX6hnZUq
Total tokens: 557

Sağlayıcı değiştirme

LiteLLM’in gerçek gücü sağlayıcı değiştirirken ortaya çıkar. Claude Sonnet 4’ü denemek ister misiniz? Tek bir parametreyi değiştirin:

response = litellm.completion(
   model="anthropic/claude-sonnet-4-20250514",
   messages=messages
)

print(response.choices[0].message.content)
Here's a simple Python function that adds two numbers:

def add_numbers(a, b):
   """
   Adds two numbers and returns the result.
  
   Args:
       a: First number
       b: Second number
  
   Returns:
       The sum of a and b
   """
   return a + b

# Example usage:
result = add_numbers(5, 3)
print(result)  # Output: 8

This function:
- Takes two parameters a and b
- Returns their sum using the + operator
- Works with integers, floats, and even negative numbers
- Includes a docstring to explain what the function does

Aynı kod yapısı, farklı sağlayıcı. Claude belgeler ve örneklerle çok daha ayrıntılı bir yanıt verirken GPT-5 daha özlüydü.

Temel hata yönetimi

Bir şeyler ters gittiğinde hata yönetimi ekleyin:

try:
   response = litellm.completion(
       model="gpt-5",
       messages=messages
   )
   print(response.choices[0].message.content)
except Exception as e:
   print(f"API call failed: {e}")

Bu desen, geçersiz API anahtarları, ağ sorunları veya modelin kullanılamaması gibi yaygın sorunları yakalar.

Sırada ne var

Artık LiteLLM’i herhangi bir sağlayıcıyla kullanmanın temel modelini biliyorsunuz. Başlangıç dokümantasyonu desteklenen modeller ve parametreler hakkında daha fazla ayrıntı sunar ve Completion fonksiyonu referansı tüm mevcut seçenekleri gösterir.

Üretim uygulamaları oluştururken, güvenilir ve yüksek performanslı sistemler yaratmak için API tasarımındaki en iyi uygulamaları da izlemeniz gerekecektir.

Sağlayıcı Değiştirme ve Yedekler (Fallbacks)

LiteLLM’in yedek sistemi sağlayıcı arızalarını otomatik olarak yönetir; böylece kullanıcılarınız hata mesajları görmez. Gerçek uygulamalar geliştirirken, sizin ekstra kod yazmanıza gerek kalmadan çalışan yedek planlara ihtiyacınız vardır.

Temel yedek kurulumu

Bir yedek ayarlamak için fallbacks listesini tamamlamaya ekleyin:

messages = [
   {"role": "user", "content": "Explain what a Python decorator is in one sentence"}
]

response = litellm.completion(
   model="gpt-5",
   messages=messages,
   fallbacks=["anthropic/claude-sonnet-4-20250514"]
)

print(f"Response: {response.choices[0].message.content}")
print(f"Model used: {response.model}")
Response: A Python decorator is a callable that wraps another function or class to augment its behavior and returns it, applied with the @ syntax so you can add reusable functionality without changing the original code.
Model used: gpt-5-2025-08-07

GPT-5 başarısız olursa, LiteLLM otomatik olarak Claude Sonnet 4’ü dener. Her iki durumda da kullanıcılar bir yanıt alır.

Yedek zincirleri oluşturma

Daha yüksek güvenilirlik için birden fazla sağlayıcıyı zincirleyebilirsiniz. Önceki iletileri kullanarak:

response = litellm.completion(
   model="gpt-5",
   messages=messages,
   fallbacks=["anthropic/claude-sonnet-4-20250514", "gpt-3.5-turbo"]
)

print(f"Model used: {response.model}")
Model used: gpt-5-2025-08-07

LiteLLM modelleri sırayla dener. Birincil model başarısız olursa, ilk yedeği dener. O da başarısız olursa ikincisini dener. Birden fazla koruma katmanı.

Yeniden denemeler ekleme

Daha da iyi güvenilirlik için yedeklerle yeniden denemeleri birleştirin:

response = litellm.completion(
   model="gpt-5",
   messages=messages,  # Same messages as before
   num_retries=2
)

Yedeklere geçmeden önce aynı modeli iki kez yeniden dener. Geçici ağ sorunları veya oran limiti artışları için iyidir.

Yedekler çoğu arızayı otomatik olarak ele alsa da, tüm modellerin başarısız olduğu durumları yine de yakalamalısınız:

try:
   response = litellm.completion(
       model="gpt-5",
       messages=messages,  # Same messages as before
       fallbacks=["anthropic/claude-sonnet-4-20250514"],
       num_retries=2
   )
   return response.choices[0].message.content
except Exception as e:
   # All models failed - handle gracefully
   return "Sorry, I'm having trouble right now. Please try again."

Sağlayıcılar mükemmel çalışsa bile kullanıcıların karşılaştığı başka bir sorun var: can sıkıcı bekleme süresi. Biri uygulamanızda gönder’e tıklar ve birkaç saniye boyunca hiçbir şey görmez. Bir şeylerin bozulup bozulmadığını düşünür.

Gerçek Zamanlı Yanıtlar için Akış (Streaming)

Çoğu yapay zeka API yanıtı, bir dosya indirir gibi tek bir blok halinde gelir. Kullanıcılar, tüm yanıt hazır olana kadar hiçbir geri bildirim olmadan bekler. Akış, metni kelime kelime üretildikçe göstererek bunu değiştirir.

Akışın kullanıcı deneyimini nasıl değiştirdiği

Tam yanıtı beklemek yerine, akış yapay zeka üretirken metni gösterir. Farkı izleyin:

import litellm
from dotenv import load_dotenv

load_dotenv()

messages = [{"role": "user", "content": "What is Python in one sentence?"}]

response = litellm.completion(
   model="gpt-5",
   messages=messages,
   stream=True
)

for chunk in response:
   if chunk.choices[0].delta.content:
       print(chunk.choices[0].delta.content, end="", flush=True)
Python is a high-level, interpreted, dynamically typed, general-purpose programming language known for its readability and vast ecosystem, used across web development, data science, automation, scripting, and more.

Metin bir anda değil, yavaş yavaş görünür (yukarıdaki parçayı kendi makinenizde çalıştırdığınızda). Kullanıcılar anında ilerleme görür; bu da yükleme simgesine bakmaktan çok daha duyarlı hissettirir.

Akış gerçekte nasıl çalışır

Bu, parça düzeyinde çalışır. Tek bir büyük yanıt yerine, delta adı verilen birçok küçük parça alırsınız. Bazen parçalar boştur; bu nedenle güvenlik için bunları düzgün ele almalısınız:

response = litellm.completion(
   model="anthropic/claude-sonnet-4-20250514",
   messages=[{"role": "user", "content": "Define JavaScript in exactly two sentences"}],
   stream=True
)

for chunk in response:
   if hasattr(chunk.choices[0].delta, 'content') and chunk.choices[0].delta.content:
       print(f"'{chunk.choices[0].delta.content}'", end=" ")
'JavaScript is a high' '-level, interpreted programming language primarily used for creating' ' interactive and dynamic content on web pages, running' ' in web browsers to manip' 'ulate HTML elements, handle user events' ', and communicate with servers.' ' Originally designed for client-side web development, JavaScript has evolve' 'd into a versatile language that can also' ' be used for server-side development, mobile applications' ', and desktop software through various runtime' ' environments like Node.js.'

Akışı yeniden kullanılabilir hale getirme

Gerçek uygulamalar için, akış çıktısını gösterirken aynı zamanda tam yanıtı yakalamak isteyeceksiniz. Bunu yapmak için bir işlev:

def stream_and_capture(model, messages):
   """Stream response while capturing the complete text"""
   response = litellm.completion(
       model=model,
       messages=messages,
       stream=True
   )
  
   full_response = ""
   for chunk in response:
       if chunk.choices[0].delta.content:
           content = chunk.choices[0].delta.content
           print(content, end="", flush=True)
           full_response += content
  
   print()  # New line after response
   return full_response

# Test it
messages = [{"role": "user", "content": "Define APIs in 2 sentences max"}]
result = stream_and_capture("gpt-5", messages)
APIs (Application Programming Interfaces) are standardized contracts, often exposed as endpoints, that specify how software components or services can communicate, including the allowed operations, inputs, and outputs. They let developers access functionality or data without knowing the underlying implementation, enabling modular, interoperable systems.

end="" parametresi parçalar arasında satır sonlarını engeller. flush=True ise arabelleğe alınmadan anında görüntülemeyi zorlar.

Yedeklerle akış

Daha iyi güvenilirlik için akışı yedek sistemiyle de birleştirebilirsiniz:

response = litellm.completion(
   model="gpt-5",
   messages=[{"role": "user", "content": "Define machine learning in one sentence"}],
   fallbacks=["anthropic/claude-sonnet-4-20250514"],
   stream=True
)

for chunk in response:
   if chunk.choices[0].delta.content:
       print(chunk.choices[0].delta.content, end="", flush=True)
Machine learning is a branch of artificial intelligence where algorithms learn patterns from data to make predictions or decisions without being explicitly programmed.

Birincil model başarısız olursa otomatik sağlayıcı değişimi artı anında geri bildirim.

Akış, kullanıcılara anında geri bildirim sağlar; ancak gerçek uygulamalar geliştirirken başka bir sorunla karşılaşırsınız. Metin geldikten sonra kodunuzun onunla çalışması gerekir. Veri çıkarabilir, veritabanlarına bilgi kaydedebilir veya değerleri diğer işlevlere iletebilirsiniz. Ancak metin yanıtlarını ayrıştırmak zahmetlidir ve format değiştiğinde kolayca bozulur.

Yapılandırılmış Çıktıların Kullanımı

Gerçekte olan şudur: Müşteri geri bildirimini analiz eden bir uygulama geliştirirsiniz. Yapay zeka şu şekilde bir metin döndürür: “Duygu analizi pozitif, güven 0.85 ve öne çıkan anahtar kelimeler: responsive, helpful, fast.” Güven puanını ve anahtar kelimeleri çıkarmak için regex desenleri yazarsınız. Testte her şey çalışır.

Sonra yapay zeka yanıt formatını “Sentiment: positive (confidence: 0.85). Keywords include responsive, helpful, and fast.” şeklinde biraz değiştirir. Regex’iniz bozulur. Veri hattınız çalışmayı durdurur. Müşteri duygu raporları puanlar yerine boş değerler gösterir. Panonuz çöker. Dün çalışan ayrıştırma kodunu düzeltmek için saatler harcarsınız.

Yapılandırılmış çıktılar, baştan öngörülebilir formatlarda veri döndürerek bu sorunu atlar.

Metin yerine JSON alma

LiteLLM düz metin yerine JSON döndürebilir. İstediğiniz yapıyı isteminizde belirtirsiniz ve doğru şekilde biçimlendirilmiş olarak geri gelir:

import litellm
from dotenv import load_dotenv

load_dotenv()

messages = [{"role": "user", "content": "Describe Python as a programming language. Return as JSON with fields: language, difficulty, description"}]

response = litellm.completion(
   model="gpt-5",
   messages=messages,
   response_format={"type": "json_object"}
)

print(response.choices[0].message.content)
{
 "language": "Python",
 "difficulty": "Beginner-friendly (easy to learn, moderate to master)",
 "description": "Python is a high-level, interpreted, dynamically typed, general-purpose programming language focused on readability and developer productivity. It supports multiple paradigms (object-oriented, functional, procedural), uses indentation for block structure, and includes a large standard library with an extensive third-party ecosystem (PyPI). Common uses include web development, data science, machine learning, automation/scripting, scientific computing, and DevOps. While not the fastest for CPU-bound tasks, it integrates well with C/C++ and accelerators, and runs cross-platform."
}

Bu yapılandırılmış yaklaşım, yaygın ayrıştırma sorunlarını ortadan kaldırır. Metinde arama yapmak yerine, istediğiniz alanları içeren geçerli JSON geri alırsınız. Ayrıştırma baş ağrısı yok, format sürprizi yok.

JSON verisiyle çalışma

Ham JSON dizeleri, uygulamanızın çalışabileceği Python nesnelerine dönüştürülene kadar yararlı değildir. Bu dizeyi gerçekten kullanabileceğiniz Python nesnelerine dönüştürmeniz gerekir:

import json

messages = [{"role": "user", "content": "Describe JavaScript in 2 sentences. Return as JSON with fields: name, paradigm, use_cases (array of exactly 3 items)"}]

response = litellm.completion(
   model="anthropic/claude-sonnet-4-20250514",
   messages=messages,
   response_format={"type": "json_object"}
)

# Parse the JSON response
data = json.loads(response.choices[0].message.content)
print(f"Language: {data['name']}")
print(f"Paradigm: {data['paradigm']}")
print(f"Use cases: {', '.join(data['use_cases'])}")
Language: JavaScript
Paradigm: multi-paradigm (object-oriented, functional, event-driven)
Use cases: web development and browser scripting, server-side development with Node.js, mobile app development with frameworks like React Native

Artık yapılandırılmış veriye sahip olduğunuza göre, metin manipülasyonu olmadan doğrudan diğer işlevlere aktarabilir, veritabanlarına kaydedebilir veya arayüzünüzde gösterebilirsiniz. Veri analizi iş akışları için Pandas AI gibi araçlar bu yapılandırılmış çıktıyla doğrudan çalışarak içgörüler üretebilir.

Pydantic ile tip güvenliği ekleme

JSON ayrıştırma söz dizimi hatalarını yakalar; ancak yanlış veri tipleri veya eksik alanlar farklı sorunlardır. Pydantic modelleri, veri yapınızı doğrulayarak sorunları uygulamanızı bozmeden önce yakalar:

from pydantic import BaseModel
import json

class ProgrammingLanguage(BaseModel):
   name: str
   paradigm: str
   use_cases: list[str]

messages = [{"role": "user", "content": "Describe CSS briefly. Return as JSON with fields: name, paradigm, use_cases (array of 3 items)"}]

response = litellm.completion(
   model="gpt-5",
   messages=messages,
   response_format={"type": "json_object"}
)

# Parse and validate with Pydantic
data = json.loads(response.choices[0].message.content)
language = ProgrammingLanguage(**data)

print(f"Validated data: {language.name} - {language.paradigm}")
print(f"Use cases: {language.use_cases}")
Validated data: CSS (Cascading Style Sheets) - Declarative, rule-based stylesheet language for describing the presentation of structured documents.
Use cases: ['Styling layout, colors, and typography of web pages', 'Responsive design across devices and viewports', 'Animations, transitions, and visual effects']

Pydantic, name ve paradigm alanlarının string olduğunu ve use_cases’in string listesinden oluştuğunu otomatik olarak doğrular. Yapay zeka yanlış tipler döndürürse veya gerekli bir alanı unutursa, daha sonra gizemli hatalar yerine net bir hata alırsınız.

JSON hatalarını ele alma

Yapay zeka bozuk JSON veya JSON olmayan metin döndürürse JSON ayrıştırma başarısız olabilir. Temel hata yönetimi ekleyin:

import json

messages = [{"role": "user", "content": "Summarize machine learning in 1 sentence. Return as JSON with topic and summary fields"}]

try:
   response = litellm.completion(
       model="anthropic/claude-sonnet-4-20250514",
       messages=messages,
       response_format={"type": "json_object"}
   )
  
   data = json.loads(response.choices[0].message.content)
   print(f"Topic: {data['topic']}")
   print(f"Summary: {data['summary']}")
  
except json.JSONDecodeError:
   print("Invalid JSON returned")
except Exception as e:
   print(f"Request failed: {e}")
Topic: machine learning
Summary: Machine learning is a subset of artificial intelligence that allows computers to learn and make predictions or decisions from data without being explicitly programmed for each specific task.

Yapılandırılmış çıktılar, dağınık metin ayrıştırmasını temiz veri yapılarıyla değiştirir. JSON modunu, normal tamamlamalarda olduğu gibi yedeklerle birleştirebilirsiniz.

Yapılandırılmış çıktılar, ayrıştırma mantığınızı bozmayacak temiz ve öngörülebilir veriler sunar. Ancak prototipten üretime geçerken ortaya çıkan başka bir sorun var: faturalar. Her API çağrısı paraya mal olur ve bu maliyetler sizi şaşırtabilir.

Maliyet Takibi

Şöyle olur: Prototipiniz testte günde 50 API çağrısıyla harika çalışır. Haftada yaklaşık 2$ harcarsınız. Her şey yolunda görünür. Üretime geçersiniz ve 500 kullanıcı elde edersiniz. Artık günde 5.000 API çağrısı yapıyorsunuz. Aylık faturanız 8$’dan 800$’a çıkar.

Maliyet takibi olmadan uyarı alamazsınız. Hangi özelliklerin en çok maliyete yol açtığını, hangi modellerin daha pahalı olduğunu veya büyüme için nasıl bütçe çıkaracağınızı bilemezsiniz. Faturadaki artışı haftalar sonra kredi kartı ekstresini aldığınızda keşfedersiniz.

LiteLLM tüm sağlayıcılar genelinde tam olarak ne harcadığınızı takip eder.

Token kullanımını anlama

Her yapay zeka yanıtı, tam olarak ne için ücretlendirildiğinizi gösteren ayrıntılı kullanım bilgileri içerir:

import litellm
from dotenv import load_dotenv

load_dotenv()

messages = [{"role": "user", "content": "Explain what a REST API is in two sentences"}]

response = litellm.completion(
   model="gpt-5",
   messages=messages
)

print(f"Response: {response.choices[0].message.content}")
print(f"Prompt tokens: {response.usage.prompt_tokens}")
print(f"Completion tokens: {response.usage.completion_tokens}")
print(f"Total tokens: {response.usage.total_tokens}")
Response: A REST API is a web service that follows the Representational State Transfer architectural style, exposing resources identified by URLs and manipulated with HTTP methods like GET, POST, PUT, and DELETE. It uses stateless client-server communication, cacheability, and uniform representations (often JSON) to support scalable, decoupled interactions.
Prompt tokens: 15
Completion tokens: 201
Total tokens: 216

Giriş token’ları isteminiz, çıkış token’ları yapay zekanın yanıtıdır. Farklı sağlayıcılar her tür için farklı ücretler alır.

Otomatik maliyet hesaplama

Ham token sayıları size dolar tutarını söylemez. LiteLLM sizin için gerçek maliyeti hesaplar:

# Get the cost for a completed response
cost = litellm.completion_cost(completion_response=response)
print(f"Total cost: ${cost:.4f}")
Total cost: $0.0020

LiteLLM’in fiyatlandırma veritabanı, modele göre token’ları dolara çevirir.

Manuel maliyet hesaplamaları

Bazen bir çağrı yapmadan önce maliyeti tahmin etmek veya halihazırda sahip olduğunuz metin için maliyet hesaplamak istersiniz:

# Calculate cost without making an API call
prompt_text = "Explain machine learning"
completion_text = "Machine learning is a method of data analysis that automates analytical model building."

estimated_cost = litellm.completion_cost(
   model="anthropic/claude-sonnet-4-20250514",
   prompt=prompt_text,
   completion=completion_text
)

print(f"Estimated cost: ${estimated_cost:.4f}")
Estimated cost: $0.0002

Bu, bütçeleme ve modelleri karşılaştırma için faydalıdır.

Birden çok API çağrısını izleme

Birçok API çağrısı yapan uygulamalar için kümülatif maliyetleri takip edebilirsiniz:

total_cost = 0.0

conversation = [
   "What is Python?",
   "How do you install Python packages?",
   "What are virtual environments?"
]

for i, question in enumerate(conversation):
   response = litellm.completion(
       model="gpt-5",
       messages=[{"role": "user", "content": question}]
   )
  
   call_cost = litellm.completion_cost(completion_response=response)
   total_cost += call_cost
  
   print(f"Call {i+1}: ${call_cost:.4f}")

print(f"Total cost: ${total_cost:.4f}")
Call 1: $0.0057
Call 2: $0.0134
Call 3: $0.0102
Total cost: $0.0292

Maliyet takibi, hangi modelleri kullanacağınıza dair bilinçli kararlar vermenize ve sürpriz faturalardan kaçınmanıza yardımcı olur. Her API çağrısının tam maliyetini görün ve sağlayıcıları karşılaştırın.

Sonuç

Artık satıcıya bağımlı kalmadan yapay zeka uygulamaları geliştirmek için gerekli araçlara sahipsiniz. Temel API çağrılarını, otomatik yedekleri, akış yanıtlarını, yapılandırılmış çıktıları ve maliyet takibini öğrendiniz.

Bu, her görev için en iyi modelleri seçme özgürlüğü sağlar. Sağlayıcıları kolayca değiştirin, otomatik yedekleri ayarlayın ve maliyetleri takip edin. Daha iyi modeller çıktığında, kodu yeniden yazmadan benimseyebilirsiniz.


Bexruz (Bex) Tuychiev's photo
Author
Bexruz (Bex) Tuychiev
LinkedIn

2 yılı aşkın deneyime sahip bir veri bilimi içerik üreticisiyim ve Medium’da en büyük takipçi kitlelerinden birine sahibim. Yapay zekâ ve makine öğrenimi üzerine, biraz da alaycı bir üslupla yazılmış, ayrıntılı makaleler kaleme almayı seviyorum; çünkü onları biraz daha az sıkıcı hale getirmek için bir şeyler yapmak gerekiyor. 130’un üzerinde makale ve bir de DataCamp kursu ürettim; bir diğeri de hazırlık aşamasında. İçeriklerim 5 milyondan fazla kişi tarafından görüldü; bunların 20 bini Medium ve LinkedIn’de takipçim oldu. 

Konular
Yapay Zeka
Büyük Dil Modelleri

Bu kurslarla yapay zekayı öğrenin!

Kurs

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

3 sa
1.3K
PyTorch Lightning ile modüler modeller oluşturarak ve gelişmiş optimizasyonu öğrenerek AI projelerinizi kolaylaştırın!
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör