Ana içeriğe atla

Tabnine: Demo Projeyle Birlikte Bir Rehber

Tabnine ve Google'ın Nano Banana modeliyle bir yapay zekâ görüntü düzenleyici nasıl oluşturulur, öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Kod yazmak, şablon kodlar veya küçük sözdizimi ayrıntılarına takıldığınızda yorucu olabilir. Yeni yapay zekâ modelleriyle denemeler yaparken ve sadece geliştirmeye odaklanmak istediğinizde bu sürtünme daha da artar. Tabnine, editörünüz içinde yapay zekâ destekli kod tamamlama ile bu yavaşlamayı aşmanıza yardımcı olur.

Bu yazıda, Visual Studio Code (VS Code) içinde Tabnine kullanarak Google'ın en yeni görüntü oluşturma modeli Nano Banana ile bir yapay zekâ görüntü düzenleyiciyi adım adım nasıl oluşturacağımı açıklayacağım. Yazının sonunda, kullanıcıların istemlerle görüntü üretip düzenleyebildiği çalışan bir Python uygulamamız olacak.

En güncel Google görüntü oluşturma modellerini takip etmek isteyenler için, Nano Banana 2 rehberimizi okumanızı öneririm.

Tabnine kullanarak derste oluşturduğumuz uygulamanın ekran görüntüsü.

Tabnine Nedir?

Tabnine, GitHub Copilot ve Cursor gibi yapay zekâ destekli bir kodlama asistanıdır. VS Code, PyCharm, Jupyter ve daha birçok popüler editörde çalışır.

Tabnine’in öne çıkan bazı özellikleri şunlardır:

- Jira entegrasyonu: Tabnine, yazılım projelerinin yönetiminde yaygın olarak kullanılan Jira ile bağlantı kurabilir. Bu, işleri yönetmeyi kolaylaştırır ve Tabnine’in süreçteki görevleri takip etmesini sağlar.

- Özel komutlar: Tabnine, "Kodu açıkla" veya "Kodu düzelt" gibi çeşitli komutlarla gelir. Ayrıca, kullanıcıların istem tabanlı özel komutlar tanımlamasına olanak tanır.

- Özelleştirilebilir davranış: Tabnine, yapay zekâ modellerinin yanıt verme biçimini yönlendiren bir istemi yapılandırmanıza olanak tanır. Örneğin, iyi tanımlanmış kodlama yönergeleriniz varsa, bunları sağlayarak üretilen kodun bu yönergelere uygun olmasını sağlayabilirsiniz.

- Akıllı otomatik tamamlama: Sadece değişken adlarını değil, tam satırları veya kod bloklarını önerir.

- Bağlama duyarlı: Tabnine, proje yapınıza ve kodlama stilinize uyum sağlar.

- Birden çok yapay zekâ modeli desteği: Tabnine, en popüler yapay zekâ modellerini destekler ve hangisini kullanacağınızı seçmeyi kolaylaştırır.

- Takım öğrenmesi: Kurumsal planlarda, ekibinizin özel kod tabanından öğrenerek şirketinizin kalıplarına uygun önerilerde bulunabilir.

Tabnine Kurulumu

Başlamak için bir Tabnine hesabı oluşturup abone olmamız gerekiyor. 14 günlük bir deneme sunuyorlar; böylece ücretsiz deneyebilirsiniz. Deneme süresinden sonra Tabnine aylık 9 $’dır.

Tabnine hesabınızı oluşturduktan sonra VS Code’u açın. VS Code yüklü değilse buradan kurun. Uzantılar sekmesini açın ve resmi uzantıyı bulmak için "tabnine" yazın.

VS Code marketplace arayüzünde arama sonuçları ve yükleme seçeneğini gösteren Tabnine uzantı listesi.

Uzantı yüklendikten sonra oturum açmamız istenir. Ardından Tabnine’e sol menü çubuğundan erişebiliriz (bu ekran görüntüsünde son seçenek).

Dosya gezgini, arama, kaynak kontrolü, hata ayıklayıcı, uzantılar ve Tabnine simgelerini gösteren Visual Studio Code kenar çubuğu.

Tabnine'in Arayüzünü Keşfetmek

Yapay zekâ görüntü düzenleyicimizi oluşturmaya başlamadan önce, Tabnine’in temel öğelerine hızlıca bakalım.

Tabnine’i açtığımızda bir yapay zekâ sohbet arayüzü ile karşılaşıyoruz:

Tabnine arayüzü; kodla ilgili yardım, uzantılar ve kod parçacıkları seçeneklerini gösteriyor; menüde Gemini 2.5 Pro seçili.

Üstte bir model seçici var. Buradan hangi modeli kullanacağımızı seçebiliriz. Bu derste varsayılan model olan Gemini 2.5 Pro ile devam edeceğim.

Tabnine'de yapay zekâ modeli seçimi arayüzü; Claude 3.5 Sonnet, Claude 3.7 Sonnet, Claude 4 Sonnet, Gemini 2.0 Flash, Gemini 2.5 Pro, GPT-4o ve Tabnine Protected gibi seçenekleri, performans iyileştirmeleri ve gizlilik özelliklerini vurgulayarak gösterir.

Altta bağlamı tanımlayabiliriz. Bu, yanıt verirken yapay zekâ modelinin neyi görmesini istediğimizi belirler.

VS Code'da Tabnine yapay zekâ sohbet arayüzü; komutlar, kod parçacıkları, geçerli dosya ve çalışma alanı kapsam ayarlarını gösterir.

Varsayılan olarak bağlam, geçerli dosyayı ve çalışma alanını (projeyi) içerir. Terminal gibi başka şeyler de ekleyebiliriz; bu, hatalarla karşılaştığımızda modeli haberdar etmek için çok yararlıdır. Ayrıca "@" karakterini kullanıp bağlama eklemek istediğimiz fonksiyonun adını yazarak belirli bir kod parçası da verebiliriz.

Hamburger menüsünden Tabnine’i yapılandırabiliriz:

Entegrasyonlar, yanıt uzunluğu, özel davranışlar, özel komutlar, sohbet tamamlama ve ürün iyileştirmeleri seçeneklerini gösteren Tabnine ayarları arayüzü.

Dikkate değer iki ayar, özel davranış ve özel komutlardır. Özel davranış bölümünde, modelin kod üretirken izlemesini istediğimiz bir istem ayarlayabiliriz. Bu, kodun belirli yönergelere uymasını istediğimiz durumlarda kullanışlıdır.

VS Code'da Tabnine özel sohbet davranışı ayarları arayüzü; Almanca adım adım yol gösteren örnek bir istem içeren metin kutusunu gösterir.

Komutlar bölümü, sohbet arayüzünde /<command-name> kullanılarak çalıştırılabilecek özel komutlar tanımlamaya izin verir. Bir komut, özünde belirli işlemler için bir istemdir. Bu, zaman kazanmanın ve aynı istemi tekrar tekrar yazmaktan kaçınmanın iyi bir yoludur.

Yeni özel komutlar tanımlamak için Tabnine arayüzü; komut adı, açıklama ve istem şablonu alanlarını ve kaydet/iptal seçeneklerini içerir.

Tabnine ile Vibe-coding: Bir Yapay Zekâ Görüntü Düzenleyici

Bu bölümde, Google'ın en yeni görüntü oluşturma modeli Nano Banana’yı kullanarak görüntüleri düzenleyen bir Python uygulamasını nasıl oluşturacağınızı göstereceğim. Kullanıcı, bir istemle görüntü üretebilir veya mevcut görüntüleri istemle birleştirip düzenleyebilir.

Amacım, bu uygulamayı tamamen sıfırdan istemlerle, yani vibe-code ederek inşa etmenin mümkün olup olmadığını görmekti.

Bu derste üretilen tüm kodları bu GitHub deposunda bulabilirsiniz.

Temel arayüzü oluşturma

Başlamak için, kullanıcıların bilgisayarlarından görseller seçebileceği ve bir istem yazabileceği temel arayüzü oluşturmak istedim. Yeni bir klasör oluşturdum ve o klasörde VS Code’u açtım. Hiç dosya oluşturmadım. İlk istemim şuydu:

Bilgisayardan görsel seçmek için bir arayüz oluşturmayı öneren Tabnine içindeki grafik kullanıcı arayüzü tasarım istemi.

Sonradan fark ettim ki bir Python uygulaması geliştirdiğimi belirtmeyi unutmuşum. Şanslıymışım ki yapay zekâ modeli de bunu istediğimi varsaydı. İsteme, çalıştıracağı komutları ve yazacağı kodu açıklayarak yanıt verdi.

Değişiklikleri uygulamak için ya tek tek uygulamamız ya da ekranın altındaki "Tümünü Uygula" düğmesine tıklamamız gerekiyor. Bazı değişikliklerin komut çalıştırmayı içerdiğini unutmayın. Bu durumlarda komutlar, gerekli Python paketlerini kurar ve kodu saklamak için dosya ve klasörleri oluşturur.

Oluşturulan betiği çalıştırdığımda arayüz şöyle görünüyordu:

Metin girişinde bir görsele giden dosya yolunu gösteren ve altta "Görselleri Seç" düğmesi bulunan yapay zekâ görüntü düzenleme arayüzü.

Üstte, seçilen tüm görsellerin listesi ve bir dosya seçici açan bir düğme var. Kullanıcı bir veya birden fazla dosya seçebiliyor ve seçilen dosyalar listeleniyor. Ancak yeni dosyalar seçildiğinde eski liste üzerine yazılıyordu; bu yüzden yeni dosyaların listeye eklenmesini, eskilerin silinmemesini istedim.

Sonraki adımda, yollar yerine küçük görsellerin (thumbnail) gösterilmesi için arayüzü iyileştirmek istedim:

Kodlama arayüzünde, yollar yerine küçük görsellerin görüntülenmesini öneren ve görüntü işleme için Pillow kütüphanesini kullanan kod çözümü içeren UI istemi.

Sonuç şu şekilde oldu:

Karanlık temalı bir arka planda, görsel küçük resimleri ve altta "Görselleri Seç" düğmesi bulunan, dosya seçimi özelliklerine sahip bir yapay zekâ görüntü düzenleyici arayüzü.

Bir diğer önemli özellik de görselleri kolayca kaldırma imkânıydı:

Seçimden görsel kaldırmayı etkinleştirmek için bir komut içeren Tabnine arayüzündeki UI istemi.

Bu istemle, küçük görsele sağ tıkladığımızda silmeyi sağlayan bir açılır menü belirerek kodu değiştirdi. Ben de böyle çalışmasını istediğim için bu değişikliği talep ettim:

Silme seçeneği olan sağ tık menüsü oluşturmak için bir yapay zekâ kodlama arayüzünde yazılmış istem metni.

Bu değişiklikten sonra uygulamayı denediğimde, görsel silme artık çalışmıyordu. Bunun Mac kullandığım için olabileceğinden şüphelendim ama söylemedim. Kendi kendine anlayıp anlayamayacağını görmek istedim.

Sağ tıklama işlevinin çalışmadığına dair bir sorunu bildiren kullanıcı mesajı ve ardından tkinter ile sık görülen çapraz platform sorunu olduğunu belirten yanıtı gösteren sohbet arayüzü.

Gayet iyi çalıştı ve bir görseli silmek için sağ tıklayabildim:

Temel arayüzdeki son adım, istem için bir metin kutusu eklemekti.

Küçük görsellerin altına "İstem" etiketli çok satırlı bir metin girişi eklenmesini öneren bir yapay zekâ kodlama yardımcısından UI istemi.

Bununla birlikte, temel arayüz hazırdı. Görselleri seçip bir istem yazabiliyoruz. Ancak henüz görüntü üretemiyoruz. Bunu bir sonraki bölümde uygulayacağız.

Nano Banana'yı Entegre Etmek

Kodu düzenli tutmak için, Google’ın en yeni görüntü modelini kullanarak görseller üreten bir fonksiyon içeren yeni bir Python betiği oluşturmasını istedim.

Google'ın Nano Banana modeliyle görsel üreten bir Python betiği oluşturma ve .env dosyasıyla API anahtarı yönetimi için istem.

Yeni betiği ve .env dosyasını oluşturdu. Bu dosya, Google API’sine bağlanmak için gereken API anahtarını saklamak amacıyla kullanılıyor. Siz de adımları izliyorsanız, buradan bir API anahtarı oluşturmanız ve bunu .env dosyasına koymanız gerekir.

Ardından, görüntü üreten fonksiyonu çağırmak için arayüze yeni bir düğme eklemesini istedim. Düğmeyi ekledi, ancak tıkladığımda bir hata aldım. Bu yüzden hatayı düzeltmesini istemeden önce terminali bağlama eklediğimden emin oldum.

Visual Studio Code'da Tabnine arayüzü; Geçerli dosya, Çalışma alanı ve Terminal kapsamları seçili, kapsam ekleme veya sıfırlama seçenekleri görünüyor.

Betik çalıştırma sırasında Tabnine arayüzünde görüntülenen hata mesajı.

Dosyalarda bazı güncellemeler yaptı ancak hata devam etti. Düzeltmesini denedim ama işe yaramadı. Yapay zekâ modelinin mevcut olmadığını söylemeye başladı ve kodu doğru olmadığını bildiğim bir yöne çevirmek istedi.

Bunu aşmak için kodu elle düzeltmem gerekti. Gemini’nin resmi web sitesine gidip oradaki örnek kodu kopyalayıp uyarladım.

Bu, vibe coding yaparken bile temel kodlama bilgisine sahip olmanın neden önemli olduğuna dair bir örnek. Sıklıkla, yapay zekâ modelinin çözemediği bir şeye takılıyoruz ve programlamayı bilmek; modelin söylediğinin doğru olmadığını anlayıp düzeltebilmemiz için önemli. Bu tür araçlar, süreci hızlandırmak için kullanılmalı; bütünüyle ikamenin yerine geçmemelidir.

Yine de, bu kodu elle yazmam gerektiğinde bile Tabnine otomatik tamamlama yetenekleri sayesinde yardımcı oldu. Örneğin, seçilen görsel yollarını modele verebilmek için görsellere dönüştürmek istediğimde, sadece ne yapmak istediğimi yazmaya başladım ve doğru kodu aldım:

Tabnine otomatik tamamlama özelliğini gösteren kod parçası.

Ayrıca, fonksiyon adının üzerinde Tabnine’in fonksiyonu düzenleme, test etme, düzeltme, açıklama ve belgeleme araçları sunduğunu görüyoruz. Örneğin, kodu belgelemesi için belgeleme işlevini kullandım ve yapacağı değişiklikleri gösteren bir karşılaştırma (diff) sundu; ben de bunları kabul edebildim veya reddedebildim:

Nihai sonuç

Uygulama artık işlevseldi ve kullanıma hazırdı. Diğer görsellerden alınan aksesuarlarla belirli bir kişi için bir aksiyon figürü oluşturmaya çalışalım:

Sonuç şöyle:

Tabnine ile Test Yazma

Bir projede çalışırken otomatik testler yazmak çok önemlidir. Tabnine’in özelliklerinden biri de bu testleri yazmamıza yardımcı olmasıdır.

Bu özellik, "Test" sekmesinde veya bir fonksiyon tanımının üzerindeki "Test" seçeneğine tıklanarak kullanılabilir. Böyle yaptığımızda, Tabnine o fonksiyon için bir test planı oluşturur.

VS Code'da Tabnine arayüzü; mevcut bir test dosyasını gözden geçirme veya yenisini oluşturma seçenekleriyle yeni bir test planı oluşturmayı, yanı sıra Python kod düzenleme özelliklerini gösterir.

Bir test planı, fonksiyonun beklenen davranışlarını içeren senaryolardan oluşur. İşte Tabnine’in fonksiyonumuz için belirlediği bazı senaryolar:

Bir yapay zekâ görüntü oluşturucu için önerilen test vakalarını, seçili modül ve test dosyası yollarıyla birlikte gösteren test planı arayüzü.

Belirli bir senaryo için test üretmek üzere, senaryoya tıklamamız yeterlidir. İlgili senaryo için test fonksiyonunu oluşturur; biz de bunu test paketimize entegre edebiliriz.

Bu değişiklikleri uyguladığımda, test dosyası sadece test fonksiyonunu içeriyordu. İçe aktarmalar ve etrafındaki test sınıfı eksikti. Testin uygulamasını tamamlaması için "Sohbet" sekmesine geri dönmem gerekti. Sonrasında, oluşturduğu dosyanın adı hatalı olduğu için bir hatayla karşılaştım. Önceki gibi, bir hata olduğunu söyledim ve düzeltti. Artık test başarıyla çalışıyor.

Bundan sonra diğer testleri eklediğimde her şey sorunsuz çalıştı.

Bir terminal çıktısında Python unittest yürütmesini gösteren ekran görüntüsü. "Gemini API çağrısı sırasında bir hata oluştu: İstem boş olamaz." hata mesajını gösteriyor. Test 0.001 saniyede bir testi çalıştırdı ve istem hatasına rağmen "OK" durumu ile sonuçlandı.

Sonuç

Tabnine, popüler kod editörleriyle kolayca entegre olarak hızlı geliştirme için güçlü bir araç olma potansiyelini gösteriyor. Yapay zekâ destekli kodlama yetenekleri süreci hızlandırıyor ve geliştiricilerin rutin işlerden ziyade yeniliğe odaklanmasına olanak tanıyor.

Bununla birlikte, uygulamayı tamamen vibe-coding ile kurma girişimim, sağlam bir kodlama temeline sahip olmanın önemini vurguladı. Uygunluğunu doğrulamadan yapay zekâ tarafından üretilen koda körü körüne güvenmek, geliştiricileri tam olarak anlayamayabilecekleri hatalara karşı savunmasız bırakabilir.

Tabnine çoğu zaman verimli çalıştı; ancak sıklıkla, alttaki yapay zekâ modelinin, GitHub Copilot gibi diğer araçlara benzer şekilde, asıl işi yapan unsur olduğu hissini verdi. Tabnine gerçekten faydalı bir araç olsa da bu deneyim, karmaşık yazılım uygulamalarının etkili ve sürdürülebilir geliştirilmesini sağlamak için geleneksel kodlama bilgisinin vazgeçilmez değerini vurguluyor.


François Aubry's photo
Author
François Aubry
LinkedIn
CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.
Konular
Yapay Zeka
Büyük Dil Modelleri

Bu kurslarla yapay zekâyı öğrenin!

Kurs

Windsurf ile Yazılım Geliştirme

1 sa 30 dk
3.1K
Windsurf ile kodlamanızı hızlandırın. Windsurf, daha hızlı geliştirme, hata ayıklama ve dağıtım yapmanıza yardımcı olan yapay zeka destekli bir IDE'dir.
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