CHAT GPT İle Hiç Bilmeden Python ve Makro Kodları Yazmak

Toplam Okunma 404

Selamlar dostlar. Takip ediyorsanız göreceğiniz üzere bir süredir yapay zeka temalı yazılara ağırlık veriyorum bültenimizde. Özellikle görselleri betimleme konusundaki açtığı çığır hepimizin hayatının vazgeçilmez bir parçası. Ama bunun dışında yapay zekanın günlük hayatımızı ne ölçüde kolaylaştıracağı, ondan nasıl yararlanabileceğimiz herkesin merak konusu olmaya devam ediyor. Benim için sürecin ilk bir yılı biraz eğlence ve oyun tarzında geçti diyebilirim. SUNO AI ile besteler yaptırmak, Chat GPT, Bard ile merak ettiğim bir konuda sohbetler etmek. Farklı görseller oluşturma denemeleri hoş bir arayışın sonucuydu.

2024 ile bu teknolojiyi günlük hayatımıza nasıl uyarlarız konusunda biraz daha somut adımlar atmaya başladım. İlk olarak Elevenlabs TTS ve ses klonlama teknolojisiyle Louis Braille’in hayatını konu alan filme yapay zeka dublajı yaptırıp GETEM’de yayınladık mesela. Şu an için ideal değil. Ama gelişiyor. Örneğin artık dublaj yapılan metne elle müdahale edip çeviri hatalarını düzeltmek mümkün.

Bilmem kullandınız mı ama Elevenabs’ın çok çok kritik ve önemli bir özelliği daha var. Diyelim içinde farklı dillerde pasajların geçtiği bir metni verdiniz. Geleneksel yöntemde sentezleyicilerin bu dilleri algılaması için farklı pasajların dillerini ayrı ayrı ayarlamanız gerekir. Bu, önemli bir web erişilebilirlik kriteridir. Fakat yapay zekayla buna hiç gerek yok. Geçen bir İngilizce deneme sınavının bir parçasını sisteme verdiğimde, aynı klonladığım ses İngilizce pasajları İngilizce telaffuz ile, Türkçe açıklamaları da Türkçe olarak seslendirdi. Bu bile başlı başına devrimsel bir özellik. Yakın zamanda GETEM’de özellikle Arapça, İngilizce kitapları gibi içinde hem Türkçe hem başka dilde olan içeriklerin Elevenlabs sesleriyle seslendirilmesi için sponsorlar bulma noktasında olumlu ilerlemeler katettiğimizi söyleyebilirim.

Gelelim asıl bana bu yazıyı yazdıran son bir aylık sürece. Bence bazen ihtiyaçlar ve insanın tembelliği çok farklı fırsatları keşfetmemize vesile oluyor. Geçtiğimiz haftalarda olan da buydu. GETEM’e 300 adet hikaye geldi bir kurumdan. Bizler gelen her kitaptaki Türkçe karakterleri silip düzenleyip ayrımları klasör içinde topluyoruz biliyorsunuz. 5 6 kitap için sorun bir problem yok ama 300 ayrı dosyayı ayrı ayrı Türkçe karakterlerden arındırıp klasörleyeceğinizi varsayın. En az bir günlük mesai demek. İşte o kriz benim aradığım fırsat oldu. Herkes Chat GPT ile nasıl kod yazıldığından söz edip duruyordu. Artık denemenin vaktiydi.

Chat GPT’ye benim için bir Python kodu yazar mısın diye başlayan uzun ir sohbet trafiği böyle başladı. Burada girilen promptlar çok önemli. Ne istediğimi adım adım yazıp gönderdim. Yani eğer bir dosyada ç, ğ, ı, İ, ö, ü, ş harfleri varsa bunları ne yapması gerektiğini yazdım. Bana güzel bir kod verip copy code bölümünü de getirdi. İyi de o kadar cahilim ki, ben bu kodu nasıl çalıştıracaktım? Bunu da sorunca nereden Python düzenleme uygulaması indirebileceğimi, sonra bunu hangi komutlarla çalıştıracağımı tek tek anlattı. Sonunda kodu çalıştırınca gerçekten de istediğime yakın bir sonuç aldım ve bu, beni daha da motive etti. Sonra kodu gitgide geliştirip sadece Türkçe karakterleri değil, varsa noktalama işaretlerini de silmesini istedim önce. Bunu da yapmayı başarınca bir de tüm bu dosyalar için ayrı ayrı klasörler yapsak ve her bir dosyayı da kendi klasörüne taşısak olur mu dedim? Ayıp ettin olmaz mı deyip onun da kodunu verdin. İnsan bu, yetinir mi bulduğuyla, dedim ki ben tüm bunları neden bir komut dosyası üzerinden çalıştırıyorum bir .exe dosyası yapsam rahatça kullansam olmaz mı? Tabi dedi Chat GPT o zaman pyinstaller komutunu kullan. Sonra Ben klasör yolunu elle yazmak istemiyorum nasıl bir klasör seç bölümü oluştururum dedim, onun için de başka bir Kütüphane kurdurdu bana. Sonuçta tüm gece uğraştım ama harika birkaç Python programıyla tamamladım geceyi. Bunlardan biri seçtiğim bir klasördeki tüm dosyaların içindeki Türkçe karakterleri temizliyordu. Bir diğeri hem bunları temizliyor hem de her bir dosyanın aynı adıyla klasör oluşturup içine taşıyordu.

Gaza gelmişken bir program daha yazdık GETEM için. Seçtiğimiz iki klasörü karşılaştırıp içlerinde aynı ada sahip olan dosyaları gösteriyor. Belki tüm bunları yapabilen zaten birçok program vardır. Belki tüm bunlar başkasına gereksiz gelecek, ama o anki ihtiyaç bunlardı ve hiçbir programlama dili bilmeden bunları sadece ne istediğini doğru şekilde anlatarak yapabilmek müthiş iyi hissettirdi bana kendimi.

Derken malum seçim dönemine girdik. YSK’nin yayınladığı PDF dosyalarını okumak öyle karışık ki, kendiniz bakarsanız ancak öyle anlayacaksınız. Şöyle diyeyim İlçe meclis üyesi adaylarının olduğu PDF dosyası 1955 Sayfa. Word ile açtığımızda bilgisayar kitleniyor. Çünkü her ilçede her partinin o ilçe meclisi toplam üye sayısınca asil ve yedek üye adayları var. Bunlar alt alta tablolar halinde yazılmış. Tek bir tablo olsaydı o da iyi, ama metnin basılacağı düşünülmüş ve buna göre her sayfada tablolar ve başlıkları yinelenmiş. Her seçim bölgesi ayrı ayrı tablolar halinde olsaydı işler yine kolay olacaktı, ama öyle de yapmamışlar örneğin Üsküdar bir satırda bitiyor hiçbir ayraç kullanmadan doğrudan Ümraniye başlıyor. İlçe meclisi adayları için bizim o an tek istediğimiz bir ilçede hangi partinin kaçıncı sırada olduğu. Standart parti sıralaması iş görmüyor, çünkü her parti her ilçede seçime katılmıyor. Belediye başkan adayları içinse her seçim bölgesinin birbirinden başlıklarla ayrılması ve pusuladaki sıra numaralarının bilinmesini bekliyoruz. Bunları 973 ilçe 300 civarı belde ve 30 büyükşehir için ayıklamak içinse zaman yok.

Ne yapmalı diye düşünürken, bu sefer bir word makrosu yazabilir miyiz acaba diye geçti aklımdan. Chat GPT yardımıyla Bambaşka bir ortam ve Visual Basic platformu. Adım adım ilerledik. Önce tüm tabloları metne çevir. Şimdi tüm gereksiz boş satırları ve gereksiz ifadeleri sil. Şimdi sekme işaretlerini referans alarak her ilçeyi birbirinden ayır ve başlarına İlçe adlarını başlık düzeyi 2 olarak koy. Şimdi Her partinin yalnızca adı olacak şekilde bir düzenleme yapıp geri kalan aday isimleri ve diğer sütunları sil, ama parti değil de bağımsız adaylar varsa bu satırlara dokunma.  Son olarak her bir parti veya bağımsız adayın başına numara koy.

Anlatması bile uzun değil mi? Ama iki günlük yoğun yazışmalar, yoğun deneme yanılmalar. Olmadı kastettiğim şuydu bu değil demeler sonunda kodu parça parça oluşturup bütün bir hale getirmeyi becerdim. Tabi tüm bunları tek bir ili seçip küçük bir belge üzerinde çalışarak yaptığımı söylemeliyim. Ayrıca böylesine kapsamlı bir kod yazarken ilk başlarda tüm istediğimi tek bir prompt ile yaptırmayı test etsem de orada işler karışıyor. Kod çalışmayınca tam olarak nerede aksama olduğunu bilmeniz güçleşiyor. O yüzden küçük bir belgede istediğim tüm işlemleri adımlayarak ilerlemeyi denedim. Önce tüm tabloları metne dönüştürme kodunu istedim örneğin. Baktım çalıştı, sonra Aradaki gereksiz ifadeleri sildirdim. O da çalışınca, aradaki boş satır ve paragraflardan kurtuldum. Onu da becerince tüm listeyi ilçe ilçe ayırmak için bir formül düşündüm. Eldeki metin tablolar metne dönüştükten sonra sekmelerle birbirinden üçüncü sekmedeki her değer değiştiğinde o değeri başlık düzeyi 1 olarak algılamasını istedim. Onu da becerince hadi şimdi başlıklar arasındaki paragrafları ayrı ayrı numaralama talebini ilettim. Bunu da yapınca tüm istediklerimi yapmış oldu. Sonrasında tüm bu adımları tek bir not defterinde toplayıp tekrar eden program satırlarını temizleyince Voltran oluşmuş oldu.

İlçe meclisi için dosya çok büyük olduğundan önce belgeyi her şehir bir dosya olacak şekilde ayırdık ve Sonra Engelsiz Erişim gönüllüleri bu makroyu seçtikleri harflerdeki şehirler için çalıştırdı ve birkaç saate işimizi bitirmiş olduk. Belediye başkan adayları içinse iş daha kolaydı. Dosyalar daha küçük oldukları için her bir kitapçığı tek bir belge olarak yönetip farklı makroları çalıştırmak daha kolay oldu. Bu tarz belgelerde yine bütün bir belgeyi şehir şehir ayırıp bir klasörde toplayan makrolar da yazdırdığımı söylemiş miydim?

Kısaca dostlar evet birkaç gece uykusuz kaldım açıkçası. Çünkü ne istediğinizi bilmeniz, onu doğru anlatmanız, sabırlı olmanız gerekiyor halen. Ama Chat GPT olmasaydı bunları tek başıma yapabilmem bugün için imkansız olacaktı. Çünkü aynı anda hem makro dilini, hem Python dilini bilip kullanabilmek benim için o kadar mümkün değil. Bilen birini bulmak, ona derdini anlatmak, o kişinin zamanı olması derken, işler iyice sarpa sarardı. Ama bugün yapay zeka servisleriyle sadece hayal etmek ve bunu hayata geçirmeye çalışmak yeterli. Bu, benim için harika bir eşiği atlamak oldu.

Son olarak GETEM’deki arkadaşlar bize gelen pdf dosyalarını aynı anda Fine Reader kullanarak nasıl OCR’den geçirir Microsoft Word dosyalarına dönüştürürüz diye soruyorlardı bana. Bir Python koduyla önce sistemden bir dosya üzerinde sağ tık yapmasını ABBY Fine Reader seçip oradan da Word’e tıklamasını istediysem de, bu yöntem çok sonuç vermedi. Chat GPT bana bu tarz işler için programların CLI komutları olabileceğini bunlarla yapmayı denememi önerdi. Basit bir Google araması beni Fine Reader programını komut istemcisiyle kullanabileceğim kodlara götürdü. Aslında tüm Fine Reader işlemlerini komut istemcisi üzerinden, hiç programı çalıştırmadan yapabildiğinizi biliyor muydunuz? Bu kodları bulunca işler çok kolaylaştı. Chat GPT’ye örnek kodları verip buna göre işlemleri yapan bir Python isteyince her şey çorap söküğü gibi geldi. Hazırladığım .exe dosyası önce kullanıcıdan bir klasör seçmesini istiyor, sonra bu klasör ve alt klasörlerindeki tüm pdf dosyalarını sırayla Fine Reader kullanarak Türkçe dilinde OCR yapıyor, aynı adla bir Word dosyası olarak kaydediyor, işi bitince de tüm dosyalardaki Türkçe karakterleri temizleyip her bir PDF ve Word dosyasını klasörlüyor.

Tüm bu yaptıklarımız bize özel ihtiyaçlardı ve tek bir satır kodlama bilmeden yapabilmek mümkün oldu. Eminim sizlerin kendinize özel başka beklenti ve ihtiyaçlarınız olacak. Bugün keşke şöyle bir program olsa, şu işlemleri yapma dönemi değil. O keşkeyi doğru şekilde ifade edip sonuçları test etme, sınırları zorlama dönemi.

Yorumlar

Bu yazı için henüz yorum yok.

Yeni Yorum