OpenAI o3 ve o4-mini API Rehberi: Python ile Reasoning Model Kullanımı (2026)

10.03.2026 23:07 Haber

OpenAI o3 API, yapay zeka dünyasında bir çığır açan akıl yürütme (reasoning) modellerinin en güçlüsüdür. OpenAI o3 reasoning model ile o4-mini'nin Python entegrasyonunu, maliyet optimizasyonunu ve production-ready kullanımını Alesta Web ekibi olarak bu kapsamlı rehberde ele aldık. Eğer uygulamanıza gelişmiş AI düşünme yeteneği kazandırmak istiyorsanız, OpenAI o3 API ile başlamak için doğru yerdesiniz!

OpenAI o3 ve o4-mini Nedir? (What are o3 and o4-mini?)

OpenAI o3 API, OpenAI'ın geliştirdiği yeni nesil "reasoning" (akıl yürütme) modellerinin en kapsamlısıdır. Geleneksel dil modellerinin aksine, OpenAI o3 reasoning model cevap vermeden önce adım adım düşünme süreci uygular. Bu yaklaşım özellikle matematik, kod yazma ve karmaşık analitik görevlerde dramatik başarı artışı sağlar.

o4-mini ise OpenAI o3 reasoning model ailesinin maliyet-etkin versiyonudur. Daha az compute kullanarak benzer reasoning kalitesi sunar. Alesta Web projelerinde hangi modeli kullanacağınız büyük ölçüde bütçenize ve görevin karmaşıklığına bağlıdır.

  • OpenAI o3: Maksimum akıl yürütme kapasitesi, karmaşık STEM problemleri, araştırma düzeyinde analiz
  • o4-mini: Hızlı ve uygun maliyetli reasoning, günlük uygulamalar, API entegrasyonları
  • reasoning_effort: Her iki modelde de "low", "medium", "high" seçenekleriyle düşünme derinliği ayarlanabilir
? Bilgi / Info:

OpenAI o3 reasoning model, 2025 sonunda piyasaya sürülen o3-mini'nin geliştirilmiş versiyonudur. ARC-AGI benchmark'ında %87.5 başarı oranıyla insan üstü performans sergilemiştir. Alesta Web AI projelerinde bu modeli aktif olarak kullanmaktayız.

Python Kurulumu ve İlk Bağlantı (Python Setup)

OpenAI o3 API'yi Python ile kullanmaya başlamak oldukça basittir. openai Python kütüphanesinin en güncel versiyonunu yüklemek kritik önem taşır çünkü eski versiyonlar OpenAI o3 reasoning model parametrelerini desteklemeyebilir.

Kurulum ve ortam ayarları

# Python virtual environment oluştur
python -m venv openai-env
source openai-env/bin/activate  # Linux/Mac
# openai-env\Scripts\activate  # Windows

# openai kütüphanesini kur (v1.40+ gerekli)
pip install openai>=1.40.0
pip install python-dotenv

# API anahtarını .env dosyasına kaydet
echo "OPENAI_API_KEY=sk-your-key-here" > .env

İlk OpenAI o3 API bağlantısı

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# OpenAI o3 reasoning model ile basit istek
response = client.chat.completions.create(
    model="o3",
    messages=[
        {
            "role": "user",
            "content": "Python'da binary search algoritmasını açıkla ve uygula."
        }
    ]
)

print(response.choices[0].message.content)
print(f"Kullanılan token: {response.usage.total_tokens}")
✅ Başarılı:

OpenAI o3 API bağlantısı kuruldu. Model yanıt verirken "thinking" sürecini otomatik olarak gerçekleştirir. Alesta Web uygulamalarında bu yapıyı base client olarak kullanıyoruz.

reasoning_effort Parametresi (Reasoning Effort)

OpenAI o3 API'nin en güçlü özelliklerinden biri reasoning_effort parametresidir. Bu parametre OpenAI o3 reasoning model'in ne kadar derin düşüneceğini kontrol eder. Maliyet ve hız optimizasyonu için kritik öneme sahiptir.

reasoning_effort kullanım örnekleri

from openai import OpenAI

client = OpenAI()

# Düşük efektli reasoning (hızlı, ucuz)
response_low = client.chat.completions.create(
    model="o3",
    reasoning_effort="low",
    messages=[{"role": "user", "content": "Türkiye'nin başkenti neresidir?"}]
)

# Orta efektli reasoning (dengeli)
response_medium = client.chat.completions.create(
    model="o3",
    reasoning_effort="medium",
    messages=[{"role": "user", "content": "Bu Python kodundaki bug nedir?\n\ndef factorial(n):\n    if n == 0: return 1\n    return n * factorial(n-1)"}]
)

# Yüksek efektli reasoning (derin analiz, pahalı)
response_high = client.chat.completions.create(
    model="o3",
    reasoning_effort="high",
    messages=[{
        "role": "user",
        "content": "Bu algoritmanın zaman ve uzay karmaşıklığını analiz et ve optimize et."
    }]
)

# o4-mini ile maliyet optimizasyonu
response_mini = client.chat.completions.create(
    model="o4-mini",
    reasoning_effort="medium",
    messages=[{"role": "user", "content": "REST API tasarım prensipleri nelerdir?"}]
)

print(f"o3 low tokens: {response_low.usage.total_tokens}")
print(f"o3 high tokens: {response_high.usage.total_tokens}")
print(f"o4-mini tokens: {response_mini.usage.total_tokens}")
? Bilgi / Info:

Alesta Web projelerinde basit soru-cevap için reasoning_effort="low", kod inceleme ve hata ayıklama için "medium", kapsamlı sistem tasarımı için "high" kullanıyoruz. Bu yaklaşım OpenAI o3 API maliyetlerini %60'a kadar azaltabilir.

Streaming ile Gerçek Zamanlı Yanıtlar (Streaming)

OpenAI o3 API streaming desteği sayesinde kullanıcılar uzun reasoning sürelerini beklemenin yerine yanıtı gerçek zamanlı alabilir. Bu özellik özellikle web uygulamalarında kullanıcı deneyimini büyük ölçüde iyileştirir.

OpenAI o3 streaming örneği

from openai import OpenAI

client = OpenAI()

print("OpenAI o3 Streaming Başlıyor...\n")

with client.chat.completions.stream(
    model="o3",
    reasoning_effort="medium",
    messages=[
        {
            "role": "system",
            "content": "Sen bir uzman yazılım mimarısın. Alesta Web için çözümler üretiyorsun."
        },
        {
            "role": "user",
            "content": "Yüksek trafikli bir e-ticaret API'si için mikroservis mimarisi tasarla."
        }
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

final = stream.get_final_completion()
print(f"\n\nToplam token: {final.usage.total_tokens}")
print(f"Reasoning token: {final.usage.completion_tokens_details.reasoning_tokens}")

Async streaming (FastAPI ile)

from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from openai import AsyncOpenAI
import asyncio

app = FastAPI()
client = AsyncOpenAI()

async def generate_stream(prompt: str):
    async with client.chat.completions.stream(
        model="o4-mini",
        reasoning_effort="medium",
        messages=[{"role": "user", "content": prompt}]
    ) as stream:
        async for text in stream.text_stream:
            yield f"data: {text}\n\n"

@app.get("/chat")
async def chat_endpoint(q: str):
    return StreamingResponse(
        generate_stream(q),
        media_type="text/event-stream"
    )

Maliyet Karşılaştırması (Cost Comparison 2026)

OpenAI o3 API kullanırken maliyet optimizasyonu büyük önem taşır. OpenAI o3 reasoning model fiyatlandırması token bazlı olup reasoning token'ları ayrıca faturalandırılır.

Model maliyet karşılaştırma tablosu (2026)

# Yaklaşık fiyatlandırma (1M token başına USD)
model_pricing = {
    "o3": {
        "input": 10.00,       # $10/1M input token
        "output": 40.00,      # $40/1M output token
        "reasoning": 40.00    # Reasoning token da output gibi
    },
    "o4-mini": {
        "input": 1.10,        # $1.10/1M input token
        "output": 4.40,       # $4.40/1M output token
        "reasoning": 4.40
    },
    "gpt-4o": {
        "input": 2.50,
        "output": 10.00,
        "reasoning": 0
    }
}

def estimate_cost(model: str, input_tokens: int, output_tokens: int, reasoning_tokens: int = 0) -> float:
    p = model_pricing[model]
    cost = (input_tokens / 1_000_000 * p["input"] +
            output_tokens / 1_000_000 * p["output"] +
            reasoning_tokens / 1_000_000 * p["reasoning"])
    return cost

# Örnek: 1000 API çağrısı, her biri 500 input + 200 output token
for model in model_pricing:
    cost = estimate_cost(model, 500, 200, 500) * 1000
    print(f"{model}: 1000 çağrı = ${cost:.4f}")
⚠️ Dikkat / Warning:

OpenAI o3 API'de reasoning_effort="high" kullanımı reasoning token sayısını dramatik artırır. Alesta Web olarak production uygulamalarında varsayılan olarak "medium" kullanıp sadece gerektiğinde "high"'a geçmeyi öneriyoruz.

Rate Limit Hataları ve Çözümleri (Rate Limit Errors)

OpenAI o3 API kullanırken en sık karşılaşılan sorunlardan biri rate limit hatalarıdır. OpenAI o3 reasoning model, daha uzun işlem süresi nedeniyle rate limit hesaplamalarını farklı yapar.

Exponential backoff ile retry mekanizması

import time
import random
from openai import OpenAI, RateLimitError, APITimeoutError

client = OpenAI()

def call_o3_with_retry(messages: list, max_retries: int = 5) -> str:
    """OpenAI o3 API için retry mekanizması"""
    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model="o3",
                reasoning_effort="medium",
                messages=messages,
                timeout=120  # o3 uzun sürebilir
            )
            return response.choices[0].message.content

        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise
            # Exponential backoff: 1s, 2s, 4s, 8s, 16s
            wait_time = (2 ** attempt) + random.random()
            print(f"Rate limit aşıldı. {wait_time:.1f}s bekleniyor... (Deneme {attempt+1})")
            time.sleep(wait_time)

        except APITimeoutError:
            if attempt == max_retries - 1:
                raise
            print(f"Timeout. Yeniden deneniyor... (Deneme {attempt+1})")
            time.sleep(5)

    return ""

# Kullanım örneği
result = call_o3_with_retry([
    {"role": "user", "content": "Bu kodu optimize et: [kod buraya]"}
])
print(result)
? Bilgi / Info:

OpenAI o3 API timeout değeri varsayılan 10s yerine en az 120s olarak ayarlanmalıdır. Alesta Web API entegrasyonlarında reasoning modellerini her zaman asenkron ve timeout-aware olarak çalıştırıyoruz.

Production Örnek Kod (Production Example)

OpenAI o3 API'yi production ortamında kullanmak için sağlam bir client yapısı gereklidir. Alesta Web'de kullandığımız production-ready OpenAI o3 reasoning model istemcisini paylaşıyoruz.

Production-ready OpenAI o3 client (alestaweb.com tarzı)

import os
import time
import logging
from dataclasses import dataclass
from typing import Optional
from openai import OpenAI, RateLimitError

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("AlestaAI")

@dataclass
class O3Config:
    model: str = "o3"
    reasoning_effort: str = "medium"
    max_tokens: int = 4096
    timeout: int = 180
    max_retries: int = 3

class AlestaO3Client:
    """Alesta Web - OpenAI o3 API Production Client"""

    def __init__(self, config: Optional[O3Config] = None):
        self.config = config or O3Config()
        self.client = OpenAI(
            api_key=os.getenv("OPENAI_API_KEY"),
            max_retries=0,  # Manuel retry kullanıyoruz
            timeout=self.config.timeout
        )

    def complete(self, user_message: str, system_message: str = "") -> dict:
        messages = []
        if system_message:
            messages.append({"role": "system", "content": system_message})
        messages.append({"role": "user", "content": user_message})

        for attempt in range(self.config.max_retries):
            try:
                start = time.time()
                response = self.client.chat.completions.create(
                    model=self.config.model,
                    reasoning_effort=self.config.reasoning_effort,
                    messages=messages
                )
                elapsed = time.time() - start
                logger.info(f"o3 yanıt süresi: {elapsed:.2f}s, token: {response.usage.total_tokens}")

                return {
                    "content": response.choices[0].message.content,
                    "tokens": response.usage.total_tokens,
                    "reasoning_tokens": getattr(response.usage.completion_tokens_details, 'reasoning_tokens', 0),
                    "elapsed": elapsed
                }
            except RateLimitError:
                wait = 2 ** attempt * 5
                logger.warning(f"Rate limit, {wait}s bekleniyor")
                time.sleep(wait)

        raise RuntimeError("OpenAI o3 API max retry aşıldı")

# Kullanım
ai = AlestaO3Client(O3Config(reasoning_effort="high"))
result = ai.complete(
    user_message="alestaweb.com için SEO stratejisi oluştur",
    system_message="Sen bir dijital pazarlama uzmanısın."
)
print(result["content"])

o3 vs Diğer Modeller Karşılaştırması (Model Comparison)

OpenAI o3 API'yi hangi senaryolarda kullanmalısınız? Alesta Web projelerinde farklı görevler için hangi modeli tercih ettiğimizi paylaşıyoruz.

Model seçim rehberi

# Hangi göreve hangi model?
model_selection_guide = {
    "Basit soru-cevap": "gpt-4o-mini",
    "Genel metin üretimi": "gpt-4o",
    "Kod yazma (basit)": "gpt-4o",
    "Kod yazma (karmaşık)": "o4-mini (reasoning_effort=medium)",
    "Bug ayıklama": "o4-mini (reasoning_effort=high)",
    "Matematik/STEM problemleri": "o3 (reasoning_effort=high)",
    "Sistem tasarımı": "o3 (reasoning_effort=high)",
    "Araştırma analizi": "o3 (reasoning_effort=high)",
    "Hızlı akıl yürütme": "o4-mini (reasoning_effort=low)",
}

# Alesta Web kullanım örüntüsü
print("Alesta Web - Model Seçim Matrisi")
print("-" * 50)
for task, model in model_selection_guide.items():
    print(f"  {task:<35} → {model}")
✅ Başarılı:

OpenAI o3 API kurulumunuz tamamlandı! Alesta Web olarak reasoning model entegrasyonlarında yardıma ihtiyacınız olursa alestaweb.com üzerinden bize ulaşabilirsiniz.

✅ Tamamlandı! (Completed!)

OpenAI o3 API ile Python entegrasyonunuz hazır! Alesta Web ekibi olarak reasoning model teknolojilerini her gün aktif kullandığımız projelerimizde öğrendiğimiz en iyi pratikleri bu rehberde sizinle paylaştık. o3 ve o4-mini ile uygulamalarınıza bir üst seviye akıl yürütme yeteneği kazandırabilirsiniz.

  • ✅ OpenAI o3 API kurulumu tamamlandı
  • ✅ reasoning_effort parametresi öğrenildi
  • ✅ Streaming entegrasyonu uygulandı
  • ✅ Maliyet optimizasyonu stratejisi oluşturuldu
  • ✅ Rate limit hataları için retry mekanizması hazırlandı
  • ✅ Production-ready client kodu hazır

Faydalı Linkler:

© 2026 AlestaWeb - Tüm hakları saklıdır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç