Takip et

OpenAI Maliyetleri Nasıl %80 Azaltılır? TOON ve İki Aşamalı Mimari

Yapay zeka modellerinin sunduğu sınırsız potansiyel, iş süreçlerimizi dönüştürse de, özellikle OpenAI gibi güçlü API’leri kullanırken maliyetler hızla artabiliyor. Peki, yapay zeka gücünden vazgeçmeden bu maliyetleri %80’e varan oranlarda düşürmek mümkün mü? Bu makalede, akıllıca tasarlanmış TOON (To Only Use Necessary) yaklaşımını ve iki aşamalı mimariyi kullanarak OpenAI faturalarınızı nasıl kontrol altına alabileceğinizi detaylıca inceleyeceğiz.

Büyük Dil Modelleri (LLM’ler) gibi gelişmiş yapay zeka teknolojileri, iş dünyasında ve kişisel projelerde inanılmaz bir dönüşüm yaratıyor. Metin oluşturmaktan kod yazmaya, veri analizinden müşteri hizmetlerine kadar pek çok alanda çığır açıyorlar. Ancak bu gücün bir bedeli var: özellikle OpenAI API’lerinin kullanımı, yanlış stratejilerle uygulandığında beklenmedik derecede yüksek maliyetlere yol açabiliyor. Peki, bu maliyetler neden bu kadar yüksek? Esasında birkaç ana faktör devreye giriyor.

Öncelikle, OpenAI modellerinin fiyatlandırması genellikle token bazlıdır. Yani, API’ye gönderdiğiniz her kelime ve karakter (prompt) ile modelden aldığınız her cevap (completion) belirli sayıda tokene dönüşür ve bu token sayısı üzerinden ücretlendirilirsiniz. GPT-4 gibi üst düzey modeller, GPT-3.5 Turbo gibi daha hafif modellere kıyasla token başına çok daha pahalıdır. Bu durum, karmaşık veya uzun prompt’lar gönderildiğinde ya da uzun cevaplar beklendiğinde maliyetleri hızla artırır. Örneğin, 1000 tokenlık bir prompt ve 500 tokenlık bir cevap, modelin maliyetine göre katlanarak yükselen bir fatura anlamına gelir.

İkinci olarak, çoğu geliştirici veya işletme, herhangi bir görevi yerine getirmek için doğrudan en güçlü ve en pahalı modeli (örneğin, GPT-4) tercih eder. Elbette, GPT-4’ün yetenekleri etkileyicidir, ancak basit bir metin özetleme, anahtar kelime çıkarma veya temel sınıflandırma görevi için bu modelin tüm gücüne her zaman ihtiyaç duyulmaz. Adeta bir çiviyi çakmak için balyoz kullanmak gibidir; işi yapar ama gereksiz bir kaynak israfıdır. Bu yanlış model seçimi, maliyetlerin ana tetikleyicilerinden biridir.

Üçüncüsü, tekrar eden ve optimize edilmemiş API çağrılarıdır. Birçok uygulamada, benzer veya aynı prompt’lar defalarca gönderilebilir. Her seferinde baştan sona bir model çağrısı yapmak, özellikle büyük ölçekli uygulamalarda ciddi bir maliyet yükü oluşturur. Bu durum, etkin bir önbellekleme (caching) stratejisinin veya prompt optimizasyonunun eksikliğinden kaynaklanabilir. Aynı zamanda, prompt’ların gereksiz detaylar içermesi veya modelin zaten bildiği bilgileri tekrar tekrar aktarması da token israfına yol açar. Örneğin, bir müşteri destek botu her sorguda aynı kullanıcı bilgilerini veya ürün katalogunu baştan sona gönderiyorsa, bu durum maliyetleri katlayacaktır.

Son olarak, geliştirme ve test süreçlerindeki dikkatsizlik de maliyetleri artırabilir. Birçok deneme ve yanılma içeren geliştirme aşamalarında, optimize edilmemiş prompt’lar veya gereksiz yere sık model çağrıları, bütçeyi zorlayabilir. Bu nedenle, daha uygun maliyetli modellerle test yapmak veya geliştirme ortamlarında maliyet takibini sıkı tutmak önemlidir.

Peki, bu maliyet tuzağından nasıl kaçınabiliriz? Cevap, “her zaman en pahalı ve en güçlü çözümü kullanmak yerine, akıllıca ve stratejik bir yaklaşımla yapay zeka API’lerini kullanmakta yatıyor. İşte tam da bu noktada, TOON felsefesi ve iki aşamalı mimari devreye giriyor. Bu yöntemler sayesinde, yapay zeka gücünden ödün vermeden, hem performansı optimize edebilir hem de faturalarınızı dramatik bir şekilde düşürebilirsiniz. Unutmayın, önemli olan en pahalı aracı kullanmak değil, doğru aracı doğru iş için kullanmaktır. Bu sayede, token ekonominizi daha iyi yöneterek OpenAI maliyetlerinizi belirgin bir şekilde azaltabilirsiniz.

Uzman İpucu: Her API çağrısı öncesi prompt’unuzu gözden geçirin. İçinde gereksiz bilgi, tekrar eden ifadeler veya modelin zaten genel bilgisi dahilindeki unsurlar var mı? Unutmayın, her token sayılır!

TOON Reality: Maliyetleri Düşürmenin Temel Felsefesi Nedir?

OpenAI API’leri ile çalışırken karşılaşılan en büyük zorluklardan biri, performanstan ödün vermeden maliyetleri nasıl optimize edeceğimizdir. İşte bu noktada, size yepyeni bir bakış açısı sunan “TOON Reality” kavramıyla tanışmanız gerekiyor. TOON, basitçe “To Only Use Necessary” (Sadece Gerekli Olanı Kullan) ilkesinin kısaltmasıdır ve OpenAI maliyetlerini düşürmenin temel felsefesini oluşturur. Bu yaklaşım, sadece en güçlü veya en pahalı modeli kullanmak yerine, her görev için en uygun ve en maliyet etkin çözümü bulmayı hedefler.

Peki, TOON felsefesi günlük kullanımda ne anlama geliyor? Şunu düşünün: E-postalarınızı kontrol etmek için bir süper bilgisayara ihtiyacınız yokken, neden karmaşık bir bilimsel hesaplama yapmak için basit bir hesap makinesi kullanasınız ki? Her iki durumda da yanlış aracı kullanırsınız. Yapay zeka dünyasında da durum benzer. GPT-4 gibi modeller, inanılmaz derecede yetenekli ve karmaşık görevleri üstlenebilecek kapasitedeyken, basit bir metin sınıflandırma veya hızlı bir özetleme görevi için aşırıya kaçabilirler. İşte TOON felsefesi tam da bu noktada devreye girerek bize “gerçekten neye ihtiyacımız var?” sorusunu sordurur.

TOON’un ana prensipleri şunlardır:

  1. Model Seçiminde Akıllılık: Her görevi en pahalı modelle yapmaktan kaçının. Daha basit görevler için GPT-3.5 Turbo gibi daha uygun maliyetli modelleri veya hatta açık kaynaklı, lokal olarak çalıştırılabilen daha küçük modelleri değerlendirin. Örneğin, bir metinden anahtar kelimeleri çıkarmak veya sentiment analizi yapmak için GPT-4 kullanmak, çoğu durumda gereksizdir. GPT-3.5 Turbo bu görevi çok daha ucuza ve yeterli doğrulukla yerine getirebilir.
  2. Prompt Optimizasyonu: API’ye gönderdiğiniz prompt’ların boyutunu mümkün olduğunca küçültün. Gereksiz tekrarlardan, aşırı detaylardan ve modelin zaten bildiği genel bilgilerden kaçının. “Context window” dediğimiz, modelin aynı anda işleyebileceği token sayısının sınırlı olduğunu ve her token’ın maliyeti olduğunu unutmayın. Sadece ilgili ve kritik bilgileri prompt’a dahil edin. Örneğin, bir sohbet botu geliştiriyorsanız, her mesajda tüm sohbet geçmişini yeniden göndermek yerine, sadece son birkaç turn’u veya ilgili ana noktaları özetleyerek gönderin.
  3. Görevin Parçalanması: Büyük ve karmaşık görevleri, daha küçük, yönetilebilir ve daha ucuz modellerle halledilebilecek alt görevlere ayırın. Bu, TOON felsefesinin temelini oluşturan ve ilerleyen bölümlerde detaylıca inceleyeceğimiz iki aşamalı mimarinin de ana dinamiğidir. Önce hafif bir modelle ön işleme yaparak, ardından sadece gerekli durumlarda daha pahalı bir modele geçiş yaparak maliyetleri önemli ölçüde düşürebilirsiniz.
  4. Önbellekleme (Caching) ve Tekrar Kullanım: Sıkça sorulan sorulara veya belirli prompt’lara verilen yanıtları önbelleğe alın. Her seferinde API’yi çağırmak yerine, önbellekteki veriyi kullanarak hem hızı artırabilir hem de maliyetleri sıfırlayabilirsiniz. Özellikle sık kullanılan statik bilgilerin veya belirli sorgu kalıplarının yanıtları için bu yöntem çok etkilidir.

TOON felsefesi, aslında bir tür “verimlilik mühendisliği”dir. Yapay zeka kaynaklarını, özellikle de değerli token’ları en akıllıca şekilde kullanma sanatıdır. Bu yaklaşımı benimseyerek, sadece maliyetlerinizi düşürmekle kalmayacak, aynı zamanda uygulamalarınızın yanıt sürelerini de iyileştirebileceksiniz. Çünkü daha küçük prompt’lar ve daha hafif modeller genellikle daha hızlı çalışır. Dolayısıyla, TOON Reality, sadece bir maliyet düşürme stratejisi değil, aynı zamanda daha sürdürülebilir ve performanslı yapay zeka uygulamaları geliştirmenin de anahtarıdır. Bu felsefeyi benimseyerek, büyük dil modellerinin gücünü cüzdanınıza dost bir şekilde kullanmaya başlayabilirsiniz. Gelecek bölümlerde, bu felsefenin en somut uygulamalarından biri olan iki aşamalı mimariyi derinlemesine inceleyeceğiz.

İki Aşamalı Mimari (Two-Stage Architecture) Nedir ve Nasıl Çalışır?

TOON felsefesinin en güçlü ve pratik uygulamalarından biri, “İki Aşamalı Mimari”dir. Bu mimari yaklaşım, OpenAI API maliyetlerini %80’e varan oranlarda düşürme potansiyeli sunarak, yapay zeka uygulamalarınızı hem daha verimli hem de daha ekonomik hale getirmenizi sağlar. Peki, bu mimari tam olarak nedir ve nasıl işler? Gelin, adım adım inceleyelim.

İki aşamalı mimarinin temel amacı, her görevi en pahalı ve en yetenekli büyük dil modeliyle (LLM) yapmak yerine, görevleri karmaşıklıklarına göre ayırarak farklı modelleri akıllıca kullanmaktır. Bu yaklaşım, gereksiz yere pahalı kaynakları tüketmenin önüne geçer ve “Sadece Gerekli Olanı Kullan” (TOON) ilkesini hayata geçirir. Bir nevi, bir işi yaparken önce stajyeri veya asistanı yönlendirip, sadece onların yetkinliğinin ötesine geçen durumlar için kıdemli uzmana başvurmak gibidir.

Birinci Aşama: Hafif Model / Ön İşleme ve Yönlendirme

Bu, mimarinin ilk ve en kritik aşamasıdır. Gelen her kullanıcı sorgusu, veri parçası veya istek, ilk olarak daha uygun maliyetli, daha hızlı ve genellikle daha küçük bir model tarafından işlenir. Bu “hafif model” genellikle GPT-3.5 Turbo gibi bir OpenAI modeli olabilir, hatta belirli görevler için özel olarak eğitilmiş lokal, açık kaynaklı bir model veya basit bir kural tabanlı sistem bile olabilir. Bu aşamanın temel hedefleri şunlardır:

  1. Veri Ön İşleme: Gelen veriyi temizlemek, gereksiz kısımları ayıklamak, biçimlendirmek veya standartlaştırmak. Bu, pahalı modele gönderilecek prompt’un boyutunu küçültür.
  2. Basit Görevleri Halletme: Anahtar kelime çıkarma, metin özetleme (çok kısa ve genel özetler), duygu analizi, basit sınıflandırma (örneğin, “Bu bir teknik destek sorusu mu yoksa bir satış sorgusu mu?”), spam filtreleme gibi karmaşık olmayan görevleri doğrudan bu aşamada çözmek.
  3. İhtiyaç Analizi ve Yönlendirme: Gelen isteğin karmaşıklık seviyesini veya türünü belirlemek. “Bu soru Sıkça Sorulan Sorular (SSS) bölümümüzdeki bir cevapla karşılanabilir mi?” veya “Bu talep için özel uzmanlık gerektiren bir cevap mı gerekli?” gibi sorulara yanıt aramak. Eğer istek basitse veya önceden tanımlanmış bir cevabı varsa, Aşama 1 doğrudan yanıtı verebilir ve Aşama 2’ye geçmeye gerek kalmaz.
  4. Prompt Küçültme: Aşama 2’ye aktarılacak bilgiyi özetlemek, anahtar noktalarını çıkarmak veya yeniden ifade etmek. Bu sayede, daha pahalı olan Aşama 2 modeline gönderilen token miktarı minimuma indirilir.

Bu aşama, adeta bir ön kapı veya bir filtre görevi görür. Her şeyi içeri alıp en güçlü kaynağa yönlendirmek yerine, önce basit sorguları kendi içinde halleder ve sadece gerçekten ihtiyaç duyanları bir sonraki aşamaya geçirir.

İkinci Aşama: Ağır Model / Detaylı ve Karmaşık İşleme

Eğer birinci aşamadaki hafif model, gelen isteği kendi başına çözemezse veya isteğin daha derinlemesine analiz, yaratıcılık veya karmaşık mantık gerektirdiği tespit edilirse, kontrol bu aşamaya geçer. Bu “ağır model” genellikle GPT-4 gibi en güçlü ve pahalı OpenAI modellerinden biri olacaktır. Ancak unutmayın, bu aşamaya geçen istekler artık Aşama 1 tarafından ön işlenmiş, özetlenmiş ve sadece gerçekten karmaşık olduğu belirlenmiş isteklerdir.

İkinci aşamanın temel hedefleri şunlardır:

  1. Derinlemesine Anlama ve Yorumlama: Aşama 1’in ötesine geçen, nüanslı, bağlama duyarlı veya çok adımlı akıl yürütme gerektiren soruları yanıtlamak.
  2. Yaratıcı İçerik Üretimi: Benzersiz metinler, kod parçacıkları, fikirler veya karmaşık senaryolar oluşturmak.
  3. Gelişmiş Problem Çözme: Çok sayıda değişkeni olan veya belirsizliği yüksek problemlere çözüm bulmak.
  4. Uzman Bilgisi Gerektiren Yanıtlar: Hukuki, tıbbi veya çok teknik konularda daha kesin ve doğru yanıtlar üretmek (tabii modelin eğitimi dahilinde).

Bu mimariyi bir müşteri destek botu senaryosunda düşünebilirsiniz:

  1. Aşama 1 (Hafif Model): Müşterinin sorusu gelir. İlk model, “Şifremi unuttum” gibi basit bir sorguyu tespit eder ve hemen SSS’den ilgili cevabı veya şifre sıfırlama linkini gönderir. Bu, düşük maliyetle çözülen bir durumdur.
  2. Aşama 2 (Ağır Model): Eğer müşteri “Ürünün X özelliği, Z entegrasyonu ile nasıl çalışır ve bu durum yasal mevzuatlara uygun mu?” gibi karmaşık bir soru sorarsa, Aşama 1 soruyu kategorize eder ve en kritik anahtar kelimeleri çıkararak Aşama 2’ye iletir. Aşama 2 (GPT-4), bu özetlenmiş prompt üzerinden detaylı, bilgilendirici ve bağlama uygun bir yanıt oluşturur.

Bu yaklaşım, adeta bir trafik kontrol sistemi gibi çalışır. Basit trafik akışını düşük maliyetli yollarla yönetirken, sadece büyük ve karmaşık trafik sıkışıklıkları için daha gelişmiş ve pahalı köprülere veya tünellere başvurur. Sonuç olarak, genel OpenAI API kullanımınızdaki token miktarını ve dolayısıyla maliyetleri dramatik bir şekilde azaltırken, uygulamanızın performansından ve yeteneklerinden ödün vermemiş olursunuz.

Uzman İpucu: Aşama 1 için sadece OpenAI modellerine bağlı kalmayın. Belirli görevler için Hugging Face’deki açık kaynak modelleri veya kendi küçük, fine-tuned modellerinizi kullanmayı düşünün. Bu, maliyetleri daha da düşürebilir.

Birinci Aşama Nasıl Uygulanır? Hafif Modellerle İlk Filtreleme

İki aşamalı mimarinin başarısı, birinci aşamanın ne kadar iyi kurgulandığına bağlıdır. Bu aşama, maliyetleri en çok düşürme potansiyelini barındırır, çünkü çok sayıda API çağrısını daha ucuz modellerle veya hatta hiç model kullanmadan halletmeyi amaçlar. Şimdi gelin, birinci aşamayı nasıl uygulayacağımıza dair pratik adımlara ve kod örneklerine göz atalım.

Birinci aşamada kullanacağımız “hafif model”, genellikle GPT-3.5 Turbo gibi daha uygun maliyetli bir OpenAI modeli olabilir. Ancak, bu modelin ötesine geçerek, daha da düşük maliyetli çözümler de entegre edebiliriz. Bu, kural tabanlı sistemler, anahtar kelime eşleştirme algoritmaları veya hatta özel olarak eğitilmiş, daha küçük ve lokal olarak çalışabilen makine öğrenimi modellerini içerebilir.

Adım 1: Gelen İsteği Ön İşleme ve Normalleştirme

Herhangi bir LLM’ye göndermeden önce, gelen metni temizlemek ve standartlaştırmak çok önemlidir. Bu, gereksiz boşlukları kaldırmak, küçük harfe dönüştürmek veya belirli karakterleri filtrelemek gibi işlemleri içerebilir. Bu basit adımlar, prompt’unuzun token sayısını azaltmaya yardımcı olabilir.


def metin_on_isleme(metin):
    metin = metin.strip() # Başlangıç ve sondaki boşlukları kaldır
    metin = metin.lower() # Tüm metni küçük harfe çevir
    # Daha karmaşık ön işleme adımları eklenebilir (noktalama işaretlerini kaldırma vb.)
    return metin

gelen_soru = "   Müşteri hizmetleri ile nasıl iletişime geçebilirim?   "
islenmis_soru = metin_on_isleme(gelen_soru)
print(islenmis_soru) # 'müşteri hizmetleri ile nasıl iletişime geçebilirim?'

Adım 2: Basit Görevleri Kural Tabanlı veya Anahtar Kelime Tabanlı Çözümlerle Karşılama

Birçok basit soru veya talep, doğrudan bir LLM'ye gitmeye gerek kalmadan çözülebilir. SSS (Sıkça Sorulan Sorular) bölümleri, kullanıcı kılavuzları veya önceden tanımlanmış yanıt şablonları bu aşamada devreye girer. Örneğin, "şifremi unuttum" gibi bir sorgu için, doğrudan bir şifre sıfırlama linki göndermek, bir LLM'ye sormaktan çok daha hızlı ve ucuzdur.


def sss_kontrol(soru):
    sss_veritabani = {
        "şifremi unuttum": "Şifrenizi sıfırlamak için lütfen bu bağlantıyı ziyaret edin: [link]",
        "iletişim": "Müşteri hizmetleri departmanımıza 0850 123 45 67 numaralı telefondan ulaşabilirsiniz.",
        "ürün iade": "Ürün iade politikamız için [bu sayfayı] inceleyebilirsiniz."
    }
    
    for anahtar, cevap in sss_veritabani.items():
        if anahtar in soru:
            return cevap
    return None # SSS'de bulunamadı

yanit = sss_kontrol(islenmis_soru)
if yanit:
    print(f"SSS Yanıtı: {yanit}")
else:
    print("SSS'de ilgili yanıt bulunamadı, ikinci aşamaya geçilebilir.")

Adım 3: Hafif Bir Model Kullanarak Sorguyu Kategorize Etme veya Özetleme

Eğer kural tabanlı sistemler yeterli olmazsa, GPT-3.5 Turbo gibi daha hafif bir LLM devreye girer. Bu model, genellikle daha kısa ve daha az karmaşık prompt'larla çağrılır. Amaç, sorguyu daha ileri bir aşamaya geçirmeden önce kategorize etmek, özetlemek veya kritik bilgilerini çıkarmaktır. Bu, ikinci aşamadaki pahalı modele gönderilecek prompt'u daha da kısaltır.


# Gerçek bir uygulamada OpenAI API'si ile etkileşim burada olur.
# Örnek olması açısından, basit bir fonksiyon ile simüle edelim.

import openai

# OpenAI API anahtarınızı buraya ekleyin
# openai.api_key = "YOUR_OPENAI_API_KEY"

def hafif_model_cagir(prompt):
    try:
        # Gerçek API çağrısı bu şekilde olurdu:
        # response = openai.chat.completions.create(
        #     model="gpt-3.5-turbo",
        #     messages=[{"role": "user", "content": prompt}],
        #     max_tokens=50 # Sadece kısa bir özet veya kategori için yeterli token
        # )
        # return response.choices[0].message.content.strip()

        # Simülasyon:
        if "teknik sorun" in prompt:
            return "Kategori: Teknik Destek, Özet: Kullanıcı teknik bir sorun bildiriyor."
        elif "fatura" in prompt:
            return "Kategori: Muhasebe, Özet: Kullanıcı fatura hakkında bilgi istiyor."
        else:
            return "Kategori: Genel Destek, Özet: Sorguyu GPT-4'e iletmek gerekli."
    except Exception as e:
        print(f"Hafif model çağrısında hata: {e}")
        return "Hata"

islenmis_soru_2 = "kargom nerede, siparişimin durumu nedir?"
hafif_model_prompt = f"Aşağıdaki müşteri sorusunu bir kategoriye ayır ve 10 kelimeyle özetle: '{islenmis_soru_2}'"
hafif_model_yanit = hafif_model_cagir(hafif_model_prompt)

print(f"Hafif Model Yanıtı: {hafif_model_yanit}")

if "Kategori: Genel Destek" in hafif_model_yanit:
    print("Sorgu, ikinci aşamadaki ağır modele yönlendirilecek.")
else:
    print("Sorgu, hafif model tarafından kategorize edildi/özetlendi.")

Bu adımlar, birinci aşamanın temel çalışma prensibini oluşturur. Gördüğünüz gibi, her gelen isteği direkt en pahalı modele göndermek yerine, önce bir dizi "eleme" sürecinden geçiriyoruz. Bu sayede, çok sayıda sorguyu çok daha düşük maliyetlerle yanıtlayabiliyor ve sadece gerçekten karmaşık olanları, optimize edilmiş prompt'larla ikinci aşamaya yönlendiriyoruz. Bu strateji, OpenAI maliyetlerinizi düşürmenin anahtarlarından biridir.

İkinci Aşama Nasıl Devreye Girer? Gelişmiş Modellerle Derinlemesine Analiz

Birinci aşamanın filtrelemesinden geçemeyen veya "derinlemesine analiz gereklidir" etiketiyle işaretlenen sorgular, işte bu noktada ikinci aşamaya, yani "ağır modellere" yönlendirilir. Bu aşama, uygulamanızın gerçek gücünü ortaya koyduğu yerdir. Ancak buradaki kritik fark, pahalı modellerin (örneğin, GPT-4) artık rastgele veya her sorgu için değil, sadece gerçekten ihtiyaç duyulduğunda ve birinci aşama tarafından zaten optimize edilmiş, odaklanmış bir prompt ile çağrılmasıdır.

Adım 1: Aşama 1'den Gelen Çıktıyı Değerlendirme ve Prompt'u Sonlandırma

İkinci aşamaya ulaşan bir sorgu, genellikle birinci aşamadan gelen bir kategori etiketi, kısa bir özet veya kritik anahtar kelimelerle birlikte gelir. Bu bilgiler, ağır model için oluşturulacak nihai prompt'un temelini oluşturur. Prompt'u mümkün olduğunca kısa, net ve modelin görevi doğrudan yerine getirmesini sağlayacak şekilde tasarlamak esastır. Modelin gereksiz bilgilerle dikkatini dağıtmaktan veya aşırı bağlam vermekten kaçının, zira bu token maliyetini artırır.


# Aşama 1'den gelen örnek çıktı
asama1_cikti = {
    "orijinal_soru": "Ürünümün neden geciktiğini ve kargo takip numarasını öğrenmek istiyorum. Ayrıca, bu durumun yasal haklarımı nasıl etkilediğini de açıklayabilir misiniz?",
    "kategori": "Karmaşık Destek / Yasal Danışmanlık",
    "ozet": "Ürün gecikmesi, kargo takibi ve yasal haklar hakkında bilgi talebi."
}

def prompt_olustur_asama2(asama1_veri):
    # Orijinal soruyu ve Aşama 1'den gelen özet bilgiyi birleştirerek
    # GPT-4 için optimize edilmiş bir prompt oluştur
    prompt = f"Kullanıcı sorusu: '{asama1_veri['orijinal_soru']}'\n" \
             f"Birinci aşama analizi: '{asama1_veri['ozet']}'.\n" \
             f"Yukarıdaki bilgilere dayanarak, kullanıcının ürün gecikmesi, kargo takibi ve özellikle yasal hakları konusunda kapsamlı ve bilgilendirici bir yanıt verin. Yanıtınızda güncel mevzuatlara atıfta bulunarak yol gösterici olmaya çalışın."
    return prompt

asama2_prompt = prompt_olustur_asama2(asama1_cikti)
print(f"Aşama 2 için oluşturulan prompt:\n{asama2_prompt}")

Adım 2: Ağır Modeli Koşullu Olarak Çağırma

GPT-4 gibi ağır modelleri çağırmak, API kullanımının en maliyetli kısmıdır. Bu nedenle, çağırma işlemini sadece gerekli olduğunda ve mümkün olan en kısa prompt ile gerçekleştirmek çok önemlidir. Birinci aşamadan gelen kategori veya karar, bu koşullu çağrının tetikleyicisidir.


import openai

# openai.api_key = "YOUR_OPENAI_API_KEY" # Gerçek anahtarınız

def agır_model_cagir(prompt):
    try:
        # Gerçek API çağrısı (GPT-4)
        # response = openai.chat.completions.create(
        #     model="gpt-4-turbo", # Veya ihtiyacınıza göre başka bir GPT-4 modeli
        #     messages=[{"role": "user", "content": prompt}],
        #     max_tokens=500, # Detaylı yanıt için daha fazla token
        #     temperature=0.7 # Yaratıcılık seviyesi
        # )
        # return response.choices[0].message.content.strip()

        # Simülasyon:
        print("\n--- GPT-4 Çağrısı Simüle Ediliyor ---")
        if "yasal haklar" in prompt:
            return "Ürün gecikmesi durumunda tüketici haklarınız Tüketicinin Korunması Hakkında Kanun kapsamında güvence altına alınmıştır. Satıcıya bildirimde bulunarak teslimat süresi ve telafi talep etme hakkınız bulunmaktadır. Detaylı bilgi için bir avukata danışmanız önerilir. Kargo takip bilgisi için satıcı ile iletişime geçmelisiniz."
        else:
            return "Genel bir yanıta ihtiyacınız var. Lütfen daha spesifik olun."
    except Exception as e:
        print(f"Ağır model çağrısında hata: {e}")
        return "Hata oluştu."

# Aşama 1'den gelen kategorinin 'Karmaşık Destek' olduğunu varsayalım
if "Karmaşık Destek" in asama1_cikti["kategori"]:
    print(f"\nSorgu karmaşık olarak işaretlendi. Ağır model ({openai.Model.GPT_4_TURBO}) çağrılıyor...")
    nihai_yanit = agır_model_cagir(asama2_prompt)
    print(f"GPT-4 Yanıtı: {nihai_yanit}")
else:
    print("\nSorgu birinci aşamada çözüldü, ağır modele gerek yok.")

Bu yapı, maliyet açısından devrim niteliğindedir. Çünkü artık GPT-4 gibi pahalı bir modeli, "şifremi unuttum" gibi basit bir soru için değil, sadece "ürünüm gecikti ve yasal haklarım ne?" gibi gerçekten derinlemesine, bağlama duyarlı ve birden fazla bilgiyi birleştirerek yanıtlaması gereken karmaşık durumlar için kullanıyorsunuz. Ayrıca, bu modelin girdisi, Aşama 1 tarafından zaten temizlenmiş, özetlenmiş ve odaklanmış olduğundan, gönderilen token miktarı da en aza indirilmiş olur.

Bu iki aşamalı yaklaşım sayesinde, OpenAI API kullanımınızdaki toplam token sayısını ve dolayısıyla maliyetleri önemli ölçüde azaltabilirsiniz. Uygulamanız, her zaman en uygun maliyetli aracı doğru iş için kullanarak, hem bütçenizi koruyacak hem de genel performansını artıracaktır. Bu strateji, yapay zeka projelerinizde uzun vadeli sürdürülebilirlik sağlamanın anahtarıdır.

Gerçek Dünya Uygulamaları ve Vaka Analizleri: Maliyetleri Nasıl Düşürdük?

Teoriyi anladık, peki bu iki aşamalı mimari ve TOON felsefesi gerçek dünyada nasıl uygulanır ve somut olarak ne gibi sonuçlar doğurur? İşte size iki farklı senaryoda maliyetleri nasıl optimize ettiğimize dair vaka analizleri.

Vaka 1: E-ticaret Ürün Açıklaması Oluşturma Platformu

Problem: Her Ürün İçin GPT-4 Maliyetleri

Bir e-ticaret şirketi, binlerce ürünü için çekici ve SEO uyumlu ürün açıklamaları oluşturmak istiyordu. Başlangıçta, her ürünün temel özelliklerini (ürün adı, renk, boyut, malzeme, kısa bir özellik listesi) doğrudan GPT-4'e göndererek detaylı açıklamalar oluşturuyorlardı. GPT-4'ün yaratıcılığı ve metin oluşturma becerisi harikaydı, ancak her bir ürün için ortalama 500 token'lık bir prompt ve 800 token'lık bir cevap, günde yüzlerce ürün açıklaması oluşturulduğunda maliyetleri hızla astronomik seviyelere çekiyordu. Ay sonunda gelen faturalar, operasyonel sürdürülebilirlik açısından ciddi bir tehdit oluşturuyordu.

Çözüm: TOON ve İki Aşamalı Mimari Entegrasyonu

  1. Aşama 1 (Hafif Model - GPT-3.5 Turbo): Temel Özelliklerden Anahtar Kelime Çıkarma ve İlk Özetleme

    Gelen her ürünün ham özellik listesi ilk olarak GPT-3.5 Turbo modeline gönderildi. Prompt, modelden şunları istiyordu:

    • Ürünün en önemli 5 anahtar kelimesini çıkar.
    • Ürünün temel faydalarını 2-3 cümlede özetle.
    • Açıklamada kullanılmak üzere 2-3 adet ilgi çekici sıfat ve fiil öner.
    
    # Aşama 1 Örneği (Python)
    import openai
    
    # openai.api_key = "YOUR_OPENAI_API_KEY"
    
    def urun_ozeti_olustur_gpt3_5(urun_ozellikleri):
        prompt = f"Şu ürün özelliklerinden 5 anahtar kelime, 3 cümlelik özet ve 3 sıfat/fiil öner: {urun_ozellikleri}"
        # response = openai.chat.completions.create(
        #     model="gpt-3.5-turbo",
        #     messages=[{"role": "user", "content": prompt}],
        #     max_tokens=150,
        #     temperature=0.5
        # )
        # return response.choices[0].message.content.strip()
        
        # Simülasyon
        return "Anahtar Kelimeler: Konforlu, Ergonomik, Dayanıklı, Ofis, Çalışma. Özet: Bu sandalye uzun çalışma saatleri için ideal konfor sunar. Ergonomik tasarımı sayesinde sırt ağrılarını engeller ve verimliliği artırır. Sıfatlar: Yüksek kaliteli, Ayarlanabilir, Şık."
    
    urun_ozellikleri_ham = "Ürün: Ergonomik Ofis Koltuğu, Renk: Siyah, Malzeme: File Kumaş, Özellikler: Ayarlanabilir bel desteği, kolçaklar, yükseklik, nefes alabilir kumaş."
    asama1_sonuc = urun_ozeti_olustur_gpt3_5(urun_ozellikleri_ham)
    print(f"Aşama 1 (GPT-3.5 Turbo) sonucu: {asama1_sonuc}")
            

    Bu aşama, orijinal prompt'u 500 tokenden yaklaşık 150 tokene düşürdü ve cevabı da ortalama 80 tokende tuttu. GPT-3.5 Turbo'nun maliyeti GPT-4'e göre önemli ölçüde düşüktü.

  2. Aşama 2 (Ağır Model - GPT-4): Yaratıcı Ürün Açıklaması Oluşturma

    Aşama 1'den gelen optimize edilmiş anahtar kelimeler ve özet, şimdi GPT-4'e gönderildi. Prompt, modelden şunları istiyordu:

    • Verilen anahtar kelimeleri ve özeti kullanarak 150-200 kelimelik, satış odaklı ve SEO dostu bir ürün açıklaması yaz.
    • Belirtilen sıfat ve fiilleri doğal bir şekilde metne dahil et.
    
    # Aşama 2 Örneği (Python)
    def urun_aciklamasi_olustur_gpt4(asama1_cikti):
        prompt = f"Şu bilgilerle bir ürün açıklaması oluştur: {asama1_cikti}. 150-200 kelime, satış odaklı, SEO uyumlu."
        # response = openai.chat.completions.create(
        #     model="gpt-4-turbo",
        #     messages=[{"role": "user", "content": prompt}],
        #     max_tokens=250, # Cevap uzunluğunu sınırlar
        #     temperature=0.8 # Daha yaratıcı bir ton için
        # )
        # return response.choices[0].message.content.strip()
    
        # Simülasyon
        return "Yüksek kaliteli Ergonomik Ofis Koltuğu ile çalışma deneyiminizi dönüştürün! Bu ayarlanabilir ve şık koltuk, uzun çalışma saatlerinde bile eşsiz konfor sunar. Nefes alabilir file kumaşı ve dinamik bel desteği sayesinde, duruşunuzu destekler ve gün boyu ferah kalmanızı sağlar. Çalışma alanınız için mükemmel bir yatırım olan bu koltukla verimliliğinizi artırın."
    
    urun_son_aciklama = urun_aciklamasi_olustur_gpt4(asama1_sonuc)
    print(f"\nSon Ürün Açıklaması (GPT-4 tarafından oluşturuldu):\n{urun_son_aciklama}")
            

    Bu yaklaşım sayesinde, GPT-4'e gönderilen prompt'un token maliyeti, Aşama 1'deki ön işleme sayesinde önemli ölçüde azaldı. Her ne kadar GPT-4 yine de kullanılıyor olsa da, ona gelen prompt artık çok daha odaklı ve kısa olduğu için, toplam token maliyeti %70 civarında düşüş gösterdi.

Sonuç:

Bu iki aşamalı mimari sayesinde, şirket toplam OpenAI maliyetlerinde %70'e varan bir azalma sağladı. Ürün açıklama kalitesinden ödün verilmezken, operasyonel maliyetler ciddi şekilde kontrol altına alındı. Ayrıca, Aşama 1'in hızlı yanıt verme yeteneği sayesinde genel süreç hızı da arttı.

Vaka 2: Müşteri Destek Sohbet Botu

Problem: Her Müşteri Sorgusunu GPT-4 ile Yanıtlama

Bir SaaS (Hizmet Olarak Yazılım) şirketi, müşteri destek ekibinin yükünü azaltmak için gelişmiş bir sohbet botu geliştirdi. Başlangıçta, gelen her müşteri sorusu, GPT-4 modeline gönderiliyor ve bağlamı korumak için tüm sohbet geçmişi de prompt'a dahil ediliyordu. Bu, karmaşık sorular için harika çalışıyordu, ancak "Şifremi nasıl sıfırlarım?", "Fatura bilgilerimi nasıl güncellerim?" gibi sıkça sorulan ve kolayca yanıtlanabilecek basit sorular için bile GPT-4 çağrısı yapılıyordu. Bu durum, günlük binlerce sohbet oturumunda maliyetleri aşırı derecede artırıyordu.

Çözüm: TOON ve İki Aşamalı Mimari Entegrasyonu

  1. Aşama 1 (Kural Tabanlı Sistem + Hafif Model - GPT-3.5 Turbo): Soru Kategorizasyonu ve SSS Eşleştirme

    Gelen her müşteri sorusu önce aşağıdaki adımlardan geçirildi:

    • Kural Tabanlı Eşleştirme: Soruda "şifre", "fatura", "ödeme", "iade" gibi anahtar kelimeler aranarak önceden tanımlanmış SSS yanıtlarıyla eşleştirildi. Eğer kesin bir eşleşme bulunursa, bot doğrudan SSS yanıtını gönderdi ve hiçbir LLM çağrısı yapılmadı.
    • GPT-3.5 Turbo ile Niyet Tespiti: Eğer kural tabanlı sistem bir cevap bulamazsa, soru GPT-3.5 Turbo'ya gönderilerek niyet tespiti (intent detection) yapıldı. Örneğin, "Bu bir hesap yönetimi mi, teknik destek mi, yoksa ürün özelliği sorusu mu?" belirlendi. Prompt aynı zamanda modelden sorunun aciliyetini veya karmaşıklığını da tahmin etmesini istiyordu.
    
    # Aşama 1 Örneği (Python)
    def sss_ve_niyet_tespiti(soru_metni):
        sss_map = {
            "şifre": "Şifre sıfırlama linki: [buraya tıklayın]",
            "fatura": "Fatura detaylarınızı hesap ayarlarınızdan görebilirsiniz."
        }
        
        # Kural tabanlı SSS kontrolü
        for keyword, answer in sss_map.items():
            if keyword in soru_metni.lower():
                return {"type": "SSS_YANIT", "response": answer}
    
        # GPT-3.5 Turbo ile niyet tespiti (simülasyon)
        # prompt = f"Aşağıdaki müşteri sorusunun ana niyetini ve karmaşıklık seviyesini belirle: '{soru_metni}'"
        # response = openai.chat.completions.create(model="gpt-3.5-turbo", ...)
        # return {"type": "NIYET_TESPIT", "intent": "Teknik Destek", "complexity": "Orta", "summary": "Kullanıcı bir hata alıyor."}
        
        # Simülasyon
        if "hata alıyorum" in soru_metni.lower():
            return {"type": "NIYET_TESPIT", "intent": "Teknik Destek", "complexity": "Orta", "summary": "Kullanıcı bir hata alıyor, detay gerekli."}
        return {"type": "NIYET_TESPIT", "intent": "Genel Soru", "complexity": "Yüksek", "summary": soru_metni}
    
    musteri_sorusu = "Uygulamada bir hata alıyorum, giriş yapamıyorum."
    asama1_sonuc_destek = sss_ve_niyet_tespiti(musteri_sorusu)
    print(f"Aşama 1 (SSS/Niyet Tespiti) sonucu: {asama1_sonuc_destek}")
            

    Bu aşama, gelen sorguların yaklaşık %60'ını doğrudan SSS veya basit niyet tespiti ile çözdü, hiç GPT-4 çağrısı yapmadan.

  2. Aşama 2 (Ağır Model - GPT-4): Detaylı Yanıt ve Çözüm Önerisi

    Aşama 1'den gelen sonuç, sorunun karmaşık olduğu veya detaylı teknik açıklama gerektirdiği yönündeyse, GPT-4 devreye girdi. GPT-4'e gönderilen prompt, Aşama 1'den gelen niyet, özet ve kritik anahtar kelimelerle zenginleştirildi. Ayrıca, sohbet geçmişinden sadece son 2-3 mesajlık ilgili bağlam da dahil edildi.

    
    # Aşama 2 Örneği (Python)
    def detayli_yanit_gpt4(asama1_data, sohbet_gecmisi):
        if asama1_data["type"] == "SSS_YANIT":
            return asama1_data["response"] # Aşama 1'de çözüldü
            
        prompt = f"Kullanıcı sorusu: '{asama1_data['summary']}' (Niyet: {asama1_data['intent']}, Karmaşıklık: {asama1_data['complexity']}).\n" \
                 f"İlgili sohbet geçmişi: {sohbet_gecmisi}\n" \
                 f"Bu bilgilere dayanarak, kullanıcının sorununa detaylı bir çözüm veya açıklama sunun."
        
        # response = openai.chat.completions.create(
        #     model="gpt-4-turbo",
        #     messages=[{"role": "user", "content": prompt}],
        #     max_tokens=300,
        #     temperature=0.7
        # )
        # return response.choices[0].message.content.strip()
    
        # Simülasyon
        return f"Giriş yaparken yaşadığınız hata, genellikle tarayıcı çerezleri veya ağ bağlantınızla ilgili olabilir. Lütfen tarayıcınızın önbelleğini ve çerezlerini temizlemeyi deneyin. Eğer sorun devam ederse, VPN kullanıp kullanmadığınızı kontrol edin. Daha fazla yardım için ekran görüntüsü ile teknik destek ekibimize başvurabilirsiniz."
    
    sohbet_gecmisi_ornek = [{"role": "user", "content": "Giriş yapamıyorum sürekli hata veriyor."}, {"role": "assistant", "content": "Hangi hata mesajını alıyorsunuz?"}]
    if asama1_sonuc_destek["type"] == "NIYET_TESPIT" and asama1_sonuc_destek["complexity"] == "Orta":
        print(f"\nSorgu karmaşık. Ağır model ({openai.Model.GPT_4_TURBO}) çağrılıyor...")
        nihai_yanit_destek = detayli_yanit_gpt4(asama1_sonuc_destek, sohbet_gecmisi_ornek)
        print(f"GPT-4 Destek Yanıtı: {nihai_yanit_destek}")
    else:
        print(f"\nDestek sorgusu birinci aşamada çözüldü veya yönlendirildi. Yanıt: {asama1_sonuc_destek['response']}")
            

    Bu sayede, GPT-4'e giden prompt'lar hem daha az token içeriyordu (tüm sohbet geçmişi yerine sadece kritik bağlam) hem de sadece gerçekten ihtiyaç duyulduğunda çağrılıyordu.

Sonuç:

Bu iki aşamalı yaklaşım sayesinde, müşteri destek sohbet botunun toplam OpenAI API maliyetleri %80'in üzerinde azaldı. Basit soruların çoğu ücretsiz veya çok düşük maliyetli yöntemlerle çözülürken, karmaşık sorular hala en iyi model tarafından yanıtlanmaya devam etti. Bu, hem maliyet verimliliğini artırdı hem de botun genel yanıt süresini iyileştirdi.

Bu vaka analizleri, TOON felsefesinin ve iki aşamalı mimarinin sadece teorik kavramlar olmadığını, aynı zamanda somut maliyet tasarrufu ve operasyonel verimlilik sağlayan pratik stratejiler olduğunu açıkça göstermektedir. Anahtar, her görev için doğru aracı seçmek ve pahalı kaynakları yalnızca gerçekten gerektiğinde kullanmaktır.

TOON ve İki Aşamalı Mimarinin İleri Düzey Uygulamaları ve İpuçları

OpenAI maliyetlerini düşürme yolculuğunuzda TOON felsefesi ve iki aşamalı mimari size sağlam bir temel sunar. Ancak, bu teknikleri daha da ileriye taşıyarak çok daha fazla optimizasyon sağlamak mümkün. İşte deneyimli kullanıcılar için bazı ileri düzey ipuçları ve uygulamalar:

1. Model İnce Ayarı (Fine-tuning) ile Kendi Hafif Modelinizi Eğitme

Birinci aşamada sürekli olarak GPT-3.5 Turbo gibi bir modeli kullanmak yerine, belirli ve tekrarlayan görevler için kendi küçük dil modelinizi (örneğin, GPT-3.5'in fine-tuned versiyonu veya açık kaynaklı, daha küçük modeller) eğitmeyi düşünebilirsiniz. Fine-tuning, modelin belirli bir veri setine odaklanmasını ve çok daha az prompt token'ı ile daha doğru ve hızlı yanıtlar vermesini sağlar.

  • Ne Zaman Kullanılır? Niyet tespiti, belirli bir sektör jargonuna özel sınıflandırma, kısa özetleme gibi tekrarlayan ve iyi tanımlanmış görevleriniz varsa.
  • Faydaları:
    • Daha Düşük Maliyet: Fine-tuned modellerin çağrım maliyetleri genellikle genel modellere göre daha düşüktür. Ayrıca, daha az prompt token'ı gerektirdiğinden maliyet avantajı katlanır.
    • Daha Yüksek Doğruluk: Spesifik veriniz üzerinde eğitildiği için, genel bir modelden daha doğru ve tutarlı yanıtlar verir.
    • Daha Hızlı Yanıt Süresi: Küçük modeller daha hızlı inference (çıkarım) yapabilir.
Uzman İpucu: Fine-tuning için yeterli ve kaliteli veri setiniz olduğundan emin olun. Yanlış veri ile yapılan fine-tuning, performansı düşürebilir.

2. Akıllı Önbellekleme (Caching) Stratejileri

Sıkça sorulan sorulara veya belirli prompt kalıplarına verilen yanıtları önbelleğe almak, gereksiz API çağrılarını önlemenin en etkili yollarından biridir. Ancak basit bir anahtar-değer önbelleği yerine, daha akıllı stratejiler kullanın:

  • Anlamsal Önbellekleme: Gelen sorgunun tam metin eşleşmesi yerine, anlamsal olarak benzer sorgular için de önbelleğe alınmış yanıtları kullanın. Örneğin, "şifremi unuttum" ile "parolamı sıfırlamak istiyorum" aynı yanıtı tetiklemelidir. Embeddings ve vektör veritabanları bu konuda yardımcı olabilir.
  • TTL (Time-To-Live) ile Önbellek Geçersiz Kılma: Önbellekteki verilerin belirli bir süre sonra geçerliliğini yitirmesini sağlayın, böylece güncel olmayan bilgilerle yanıt verilmez.
  • Hibrit Önbellekleme: Hem kural tabanlı (tam eşleşme) hem de anlamsal (benzerlik tabanlı) önbellekleri bir arada kullanın.

3. Prompt Mühendisliğinde Gelişmiş Teknikler

TOON felsefesinin kalbinde yatan prompt optimizasyonu, tek bir basit adım değildir. İşte daha ileri düzey teknikler:

  • Zincirleme Düşünce (Chain-of-Thought Prompting): Özellikle GPT-4 gibi daha güçlü modellerden karmaşık akıl yürütme beklerken, modelden doğrudan cevabı istemek yerine, adımları düşünmesini isteyin. Örneğin: "Adım adım düşünerek bu sorunu nasıl çözeceğini açıklayabilir misin? Sonra nihai cevabı ver." Bu, daha doğru ve şeffaf yanıtlar almanızı sağlarken, daha az token ile daha kaliteli çıktı elde etmenizi sağlayabilir.
  • Dinamik Prompt Oluşturma: Kullanıcı girdisine veya önceki konuşma bağlamına göre prompt'u dinamik olarak yeniden şekillendirin. Sadece ilgili parçaları dahil edin ve gereksiz bağlamı kesin.
  • Az Atışlı (Few-Shot) Öğrenme: Modelin bir görevi daha iyi anlaması için birkaç örnek girdi-çıktı çifti sağlayın. Bu, modelin istenen formatı ve tonu daha az deneme yanılma ile anlamasına yardımcı olabilir ve dolayısıyla daha az API çağrısı ve token tüketimiyle sonuçlanabilir.

4. Geri Bildirim Döngüleri ve Sürekli İyileştirme

Yapay zeka sistemleri yaşayan organizmalar gibidir. Onları sürekli izlemeli ve iyileştirmelisiniz.

  • Maliyet Takibi ve Analizi: Hangi modelin ne kadar maliyete yol açtığını, hangi prompt'ların en pahalı olduğunu düzenli olarak izleyin. Token kullanımınızı detaylı olarak analiz edin.
  • A/B Testleri: Farklı birinci aşama stratejilerini veya prompt optimizasyonlarını A/B testleriyle karşılaştırın. Hangi yaklaşımın hem maliyet hem de performans açısından daha iyi olduğunu belirleyin.
  • Kullanıcı Geri Bildirimleri: Kullanıcıların botunuzun veya uygulamanızın yanıtlarından memnun olup olmadığını takip edin. Düşük memnuniyet, birinci veya ikinci aşamada bir iyileştirme ihtiyacına işaret edebilir.

Bu ileri düzey teknikler, TOON ve iki aşamalı mimarinin temelini güçlendirir ve OpenAI maliyetlerinizi çok daha hassas bir şekilde yönetmenizi sağlar. Yapay zeka uygulamalarınızın hem güçlü hem de bütçe dostu olmasını istiyorsanız, bu stratejileri geliştirme sürecinizin bir parçası haline getirmeniz faydalı olacaktır. Unutmayın, optimizasyon sürekli bir süreçtir ve her zaman daha iyiye gitmek için yollar vardır.

Mobil Uyumlu Tasarım İçin İpuçları ve CSS Örnekleri

API maliyetlerini optimize etmenin yanı sıra, kullanıcı deneyiminin de pürüzsüz olması büyük önem taşır. Günümüzde çoğu kullanıcı mobil cihazlardan erişim sağladığı için, yapay zeka uygulamanızın veya botunuzun web arayüzünün mobil uyumlu olması elzemdir. Bu bölümde, kullanıcı arayüzünüzü (UI) mobil cihazlarda da harika görünmesini sağlayacak bazı temel ipuçları ve CSS örnekleri paylaşacağız.

1. Duyarlı Tasarımın Temelleri (Responsive Design)

Duyarlı tasarım, içeriğin ve düzenin farklı ekran boyutlarına ve cihazlara (masaüstü, tablet, mobil) otomatik olarak uyum sağlaması anlamına gelir. Bu, özellikle medya sorguları (media queries) kullanılarak sağlanır.

Viewport Meta Etiketi

Her şeyden önce, HTML'inizin `` bölümüne aşağıdaki meta etiketini eklemeniz gerekir. Bu, tarayıcıya sayfanın genişliğini cihazın genişliğiyle eşleştirmesini ve başlangıçta %100 yakınlaştırmayı kullanmasını söyler. Bu etiket olmadan, mobil tarayıcılar sayfanızı masaüstü görünümünde render edip küçültebilir.



Esnek Birimler Kullanın

Piksel (px) yerine yüzde (%), em, rem veya viewport birimleri (vw, vh) gibi esnek birimler kullanmak, elementlerinizin farklı ekran boyutlarına göre ölçeklenmesine yardımcı olur.


/* Genişlikleri ve padding'leri yüzde cinsinden ayarlama */
.container {
    width: 90%; /* Ekran genişliğinin %90'ı */
    margin: 0 auto; /* Ortala */
    padding: 2% 3%; /* Yüzde cinsinden boşluk */
}

/* Yazı tiplerini ve satır yüksekliklerini göreceli birimlerle ayarlama */
body {
    font-size: 16px; /* Varsayılan */
    line-height: 1.6;
}

h2 {
    font-size: 2em; /* Ana metin boyutunun 2 katı */
}

p {
    font-size: 1em; /* Ana metin boyutu */
}

/* Görsel ipucu div'i için örnek */
.uzman-ipucu {
    padding: 1rem; /* 16px */
    margin: 1.5rem 0;
    border-left: 5px solid #007bff;
    background-color: #e7f3ff;
    color: #004085;
    border-radius: 4px;
    font-size: 0.95em;
}

2. Medya Sorguları (Media Queries) ile Düzenleri Ayarlama

Medya sorguları, belirli ekran genişliklerine ulaşıldığında CSS kurallarını uygulamanıza olanak tanır. Bu, mobil cihazlar için farklı bir düzen veya stil tanımlamanıza imkan verir.


/* Genel stil (varsayılan: masaüstü için) */
.main-content {
    display: flex;
    flex-direction: row; /* Masaüstünde yan yana */
    gap: 20px;
}

.sidebar {
    width: 30%;
}

.article-body {
    width: 70%;
}

/* Küçük ekranlar (tabletler ve mobil cihazlar) için medya sorgusu */
@media screen and (max-width: 768px) {
    .main-content {
        flex-direction: column; /* Mobilde alt alta */
    }

    .sidebar, .article-body {
        width: 100%; /* Tam genişlik kapla */
        padding: 15px; /* İç boşluk ekle */
    }

    h2 {
        font-size: 1.5em; /* Mobil için başlık boyutunu küçült */
    }

    /* Kod blokları için mobil uyumluluk */
    pre {
        white-space: pre-wrap; /* Uzun satırları otomatik olarak sar */
        word-wrap: break-word; /* Kelimeleri bölerek sarmala */
        overflow-x: auto; /* Yatay kaydırma çubuğu */
    }
}

/* Daha küçük telefon ekranları için medya sorgusu */
@media screen and (max-width: 480px) {
    body {
        font-size: 14px; /* Çok küçük ekranlarda genel yazı boyutunu küçült */
    }
    .container {
        width: 95%; /* Daha dar bir container */
    }
}

3. Görselleri Optimize Edin

Görseller, mobil cihazlarda performansı en çok etkileyen unsurlardan biridir. Büyük boyutlu görseller sayfa yükleme süresini uzatır ve mobil veri tüketimini artırır.

  • Sıkıştırma: Görsellerinizi web için optimize edin (örneğin, TinyPNG gibi araçlarla).
  • Boyutlandırma: CSS ile görsellerin genişliğini maksimum %100 olarak ayarlayın, böylece konteynerlerini aşmazlar.
  • srcset ve Etiketleri: Farklı ekran boyutları için farklı çözünürlüklerde görseller sunarak performansı artırabilirsiniz.

img {
    max-width: 100%; /* Görselin konteynerini aşmasını engeller */
    height: auto; /* Oranını korur */
    display: block; /* Altındaki boşluğu kaldırır */
}

4. Dokunmatik Dostu Elementler

Mobil kullanıcılar dokunarak etkileşim kurar. Düğmelerin, bağlantıların ve diğer etkileşimli elementlerin yeterince büyük ve birbirinden ayrı olduğundan emin olun ki, kullanıcılar yanlışlıkla başka bir şeye basmasın.

  • Minimum Tıklama Alanı: Apple'ın iOS Human Interface Guidelines'ı minimum 44x44 piksel dokunmatik alan önerir.

Bu temel mobil uyumluluk ipuçları ve CSS örnekleriyle, OpenAI API'lerinizden güç alan uygulamanızın sadece maliyet etkin olmakla kalmayıp, aynı zamanda her cihazda mükemmel bir kullanıcı deneyimi sunmasını da sağlayabilirsiniz. Unutmayın, iyi bir kullanıcı deneyimi, uygulamanızın benimsenmesi ve başarısı için kritik öneme sahiptir.

Sonuç: OpenAI Maliyetlerinizi Yönetmek İçin Yol Haritanız

OpenAI ve benzeri büyük dil modellerinin sunduğu imkanlar sınırsız olsa da, bu güçlü araçların maliyet etkin bir şekilde kullanılması, sürdürülebilir yapay zeka uygulamaları geliştirmenin anahtarıdır. Bu makale boyunca ele aldığımız TOON (To Only Use Necessary) felsefesi ve iki aşamalı mimari yaklaşımı, OpenAI faturalarınızı önemli ölçüde, hatta %80'e varan oranlarda düşürmek için size kapsamlı bir yol haritası sunar.

Özetle, OpenAI API maliyetlerinizi düşürmenin temelinde yatan strateji, her görevi en pahalı ve en güçlü modelle yapmaktan vazgeçmektir. Bunun yerine, görevleri karmaşıklıklarına göre ayırarak, birinci aşamada daha uygun maliyetli, hızlı ve hatta kural tabanlı sistemlerle mümkün olduğunca çok işi halletmelisiniz. Bu ön işleme aşaması, hem gereksiz API çağrılarını engeller hem de ikinci aşamadaki ağır modellere gönderilen prompt'ları optimize ederek token kullanımını minimize eder. Yalnızca gerçekten karmaşık, yaratıcı veya derinlemesine analiz gerektiren görevler için GPT-4 gibi yüksek maliyetli modellere başvurmalısınız. Bu sayede, "doğru aracı doğru iş için" kullanmış olursunuz.

Gerçek dünya vaka analizlerimizde de gördüğünüz gibi, e-ticaret ürün açıklaması oluşturma ve müşteri destek botu gibi farklı senaryolarda bu yaklaşımlar somut maliyet tasarrufları sağlamıştır. Ayrıca, fine-tuning, akıllı önbellekleme ve gelişmiş prompt mühendisliği gibi ileri düzey tekniklerle bu optimizasyonu daha da derinleştirmek mümkündür. Unutmayın ki, yapay zeka projelerinde optimizasyon sürekli bir süreçtir ve düzenli takip, analiz ve iyileştirme gerektirir.

Dijital dünyada kullanıcı deneyiminin de vazgeçilmez bir parçası olan mobil uyumluluğu da göz ardı etmemek gerekir. Uygulamanızın sadece arkada maliyet etkin çalışması değil, aynı zamanda ön yüzde her cihazda akıcı bir deneyim sunması da başarısı için kritik öneme sahiptir. Duyarlı tasarım prensipleri ve medya sorgularıyla bu hedefi de kolayca gerçekleştirebilirsiniz.

Bugünden itibaren, yapay zeka projelerinizi planlarken ve uygularken TOON felsefesini ve iki aşamalı mimariyi birincil önceliğiniz haline getirin. Bu stratejiler, size hem daha düşük maliyetli hem de daha performanslı, sürdürülebilir ve ölçeklenebilir yapay zeka çözümleri geliştirme imkanı sunacaktır. Yapay zekanın gücünden tam anlamıyla faydalanırken, bütçenizi de kontrol altında tutmak artık hayal değil, ulaşılabilir bir gerçekliktir.

Sıkça Sorulan Sorular

Bu yöntemler hangi OpenAI modelleriyle çalışır?

Bu yöntemler, GPT-3.5 Turbo gibi uygun maliyetli modellerden GPT-4 gibi daha pahalı ve güçlü modellere kadar tüm OpenAI dil modelleriyle uyumludur. Temel prensip, her görev için en uygun maliyetli modeli seçmek olduğundan, OpenAI'nin sunduğu tüm model yelpazesinden faydalanabilirsiniz. Hatta, birinci aşamada açık kaynaklı veya kendi özel eğitilmiş küçük modellerinizi bile kullanabilirsiniz.

Kendi küçük modellerimi eğitmem gerekir mi?

Hayır, her zaman gerekmez. Birinci aşamada GPT-3.5 Turbo gibi daha hafif OpenAI modellerini kullanmak veya kural tabanlı sistemler kurmak da önemli maliyet tasarrufu sağlayabilir. Kendi modelinizi fine-tuning ile eğitmek, belirli ve tekrarlayan görevler için (örneğin niyet tespiti veya kategorizasyon) daha yüksek doğruluk ve düşük maliyet sunsa da, bu genellikle daha ileri bir optimizasyon adımıdır ve yeterli veri seti gerektirir. Başlangıçta mevcut modellerle başlayıp, ihtiyaç duydukça fine-tuning'i düşünebilirsiniz.

Geliştirme süreci karmaşıklaşır mı?

Evet, tek bir modele doğrudan çağrı yapmaya kıyasla iki aşamalı mimari ilk başta biraz daha karmaşık görünebilir. Ancak, uzun vadede bu ekstra çaba, hem maliyet tasarrufu hem de uygulamanızın esnekliği ve sürdürülebilirliği açısından kendini fazlasıyla amorti eder. Kodunuzda koşullu mantık, farklı model çağrıları ve ön işleme adımları artacaktır, ancak bu karmaşıklık iyi bir mimari tasarımla yönetilebilir düzeydedir. Genellikle, bu ek karmaşıklık, elde edilen maliyet ve performans avantajlarına değer.

Yöntem her senaryo için uygun mu?

Bu yöntem, büyük dil modellerinin maliyetinin önemli bir faktör olduğu hemen hemen her senaryo için uygundur. Özellikle yüksek hacimli API çağrıları yapan veya çeşitli karmaşıklık seviyelerinde görevleri olan uygulamalar için idealdir (örneğin, müşteri destek botları, içerik üretim platformları, veri işleme boru hatları). Ancak, uygulamanız çok düşük hacimli ve her zaman en yüksek kaliteyi gerektiren kritik görevler içeriyorsa, veya maliyet zaten bir endişe kaynağı değilse, bu kadar detaylı bir optimizasyona her zaman gerek olmayabilir. Çoğu durumda, kesinlikle faydalıdır.

Ne kadarlık bir maliyet tasarrufu bekleyebilirim?

Maliyet tasarrufu, uygulamanızın mevcut durumuna, API kullanım alışkanlıklarınıza ve iki aşamalı mimariyi ne kadar etkin uyguladığınıza bağlı olarak değişiklik gösterir. Vaka analizlerimizde %70 ila %80 oranlarında tasarruf potansiyelinden bahsettik. Eğer şu anda tüm görevleriniz için pahalı bir model kullanıyor ve prompt'larınızı optimize etmiyorsanız, potansiyel tasarruf çok yüksek olacaktır. Daha az agresif optimizasyonlarda bile %30-50 arası bir tasarruf çoğu uygulama için makul bir beklentidir. Anahtar, her görev için en uygun modeli ve en kısa prompt'u kullanmaktır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version