paint-brush
ChatGPT Linux Bash Komut Dosyasını Nasıl Ele Alır?ile@dclinton
18,249 okumalar
18,249 okumalar

ChatGPT Linux Bash Komut Dosyasını Nasıl Ele Alır?

ile David Clinton6m2023/02/20
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

ChatGPT, OpenAI'nin son derece yardımsever bir ortakla programlama yapmak için kullanılabilecek yeni bir aracıdır. Bu makale ChatGPT'nin Linux Bash komut dosyalarını nasıl işlediğini ele alıyor. Öğreniminizi desteklemek için kullanmak isterseniz bu makalenin video versiyonunu buradan izleyebilirsiniz.
featured image - ChatGPT Linux Bash Komut Dosyasını Nasıl Ele Alır?
David Clinton HackerNoon profile picture

Haftalardır yapay zeka ve doğal dil işleme, özellikle de OpenAI'nin GPT'sinin en son sürümü hakkında çok şey duyuyoruz.


GPT 3.5'in son sürümü ve özellikle de çok yeni ChatGPT aracı kesinlikle ileriye doğru büyük bir adımdır.


Yapay zekadan emlak sözleşmeleri ve vasiyetnameler hazırlamasını ve hatta programlama kodu oluşturmasını isteyen insanları okumuş olabilirsiniz. Bu makale araca biraz farklı bir bakış açısıyla yaklaşıyor.


Öğreniminizi desteklemek için kullanmak isterseniz bu makalenin video versiyonunu buradan izleyebilirsiniz:




ChatGPT ve Bash Komut Dosyası ile Denemeler Yapmak

ChatGPT'nin Linux Bash komut dosyalarını nasıl işlediğini görmeye karar verdim. Ancak (spoiler uyarısı!), aracın önerileri - hem iyi kod hem de kötü kod - üzerinde çalışırken, daha da güçlü bir faydanın karşımda olduğunu fark etmeye başladım: son derece yardımsever bir ortakla eşleştirme programı yapma fırsatı .


Yapay zeka sonuçta sorunumu çözmede başarısız oldu, ancak başarısız olma şekli kesinlikle büyüleyiciydi. Ve yapay zekanın yeni cevaplar aramasını izlemek kesinlikle çılgıncaydı.

İlk Deneme – ChatGPT Sorunu Çözmeye Çalışıyor

Peki her şeyin nasıl olduğunu görelim. Yapay zekaya sağladığım ilk bilgi aşağı yukarı şöyle:

Bana bir YouTube videosunun URL'sini isteyen ve ardından bu URL'den indirmek için yt-dlp programını kullanan bir Bash komut dosyası yazın. Komut dosyası daha sonra dosya adını "myvideo.mp4" olarak değiştirmelidir.

Birkaç saniye sonra ChatGPT bana bir senaryonun geleceğini söyledi. İşte bu kod nasıl görünüyordu:

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file yt-dlp $url # Change the downloaded video filename to "myvideo.mkv" mv video-filename.mp4 myvideo.mp4

Yapay zeka, Bash betiklerinin ne olduğunu ve kodun nasıl sunulacağını açıkça biliyor. Hatta her kod satırına yorum yaparak harika bir iş çıkardı. Yapay zeka, kullanıcıdan giriş yapmasını nasıl doğru bir şekilde isteyeceğini ve ardından giriş dizesini url adı verilen bir değişkene nasıl aktaracağını biliyor.


Ayrıca yt-dlp programını ve nasıl çalıştığını da biliyor ve ona sağlanan URL'yi uygun şekilde besliyor. Daha sonra en azından indirilen video dosyasını myvideo.mp4 olarak yeniden adlandırmayı denedi. Ancak indirilen dosya adının video-dosyaadı.mp4 olacağı varsayıldığında her şey bozuldu. Hay aksi.


Her halükarda, yapay zeka bana komut dosyasını kendi kodundan nasıl oluşturacağımı ve sonra çalıştıracağımı gösterdi.

İkinci Deneme – ChatGPT Kendini Düzeltiyor

İlk takip istemim bariz hataya dikkat çekti ve birkaç saniye sonra ChatGPT bunun yanlış olduğunu kabul etti ve bir iyileştirme önerdi.

Haklısınız, sağladığım komut dosyası beklendiği gibi çalışmayacaktır çünkü indirilen videonun video-filename.mp4 adlı bir dosyaya kaydedileceğini varsaymaktadır. Ancak durumun böyle olacağı garanti edilmez. Bunu düzeltmek için...

Yapay zekanın buradaki sürece tamamen dahil olması akıllara durgunluk veriyor. İlk kodunu hatırlıyor, şikayetimi dinleyip anlıyor ve çözüm düşünüyor. İşte o ikinci deneme:

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file filename=$(basename $url) # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

Tamam, çözümün ne kadar doğru göründüğünü görebiliyorum. basename , dosya sistemi dizinlerini çıkarabilen ve gerçek dosya adından başka bir şey bırakamayan bir Linux aracıdır.


Sorun, url değişkeninin yerel bir dosya adı değil, bir internet adresi içermesidir. Bu kesinlikle işe yaramayacak.

Üçüncü Deneme – ChatGPT Tekrar Deniyor

Bunun üzerine tekrar denedim ve bunun iş için doğru araç olmadığını açıkladım. Ve ChatGPT bir kez daha deneyiyor.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Extract the filename from the URL filename=$(basename $url) # Download the video using the yt-dlp tool and specify the filename yt-dlp -o $filename $url # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

Bu kez, yt-dlp belgelerine aşina olduğunu gösteriyor ve indirilen videoya bir ad vermek için -o argümanını kullanmamızı öneriyor; bu, artık basename ona karşı çalışması gerektiği anlamına geliyor. Her yinelemede yapay zeka, kesme ve yapıştırma zevkim için bana bu güncellenmiş kodu veriyor.


Tabii bu da işe yaramayacaktı. Bir sonraki denememde yapay zekanın biraz çaresiz olduğu hissine kapılıyorum.

İlk Başta Başarılı Olamazsanız En azından Bir Şey Öğreneceksiniz

Bir yan sorunla karşılaştığımız için bir veya iki denemeyi atlayacağım: YouTube'dan gelen videolar her zaman MP4 değildir, bazen MKV'lerdir, hatta WEBM'lerdir. Bu belirsizlik, üzerinde çalıştığımız dosya adlarını etkileyebilir, bu yüzden ChatGPT'den bunu koda dahil etmesini istedim.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Extract the filename from the URL filename=$(basename $url) # Download the video using the yt-dlp tool and specify the filename yt-dlp -F mp4 -O $filename $url # Change the downloaded video filename to "myvideo.mkv" mv $filename.mp4 myvideo.mp4

Bunun da işe yaramayacağını söylediğimde yapay zekanın kafası karışmaya başladı. İlk önce bana -F seçeneğinin geçerli bir video formatı beklediğini ancak "mp4"ün geçerli olmadığını söyledi. Sonra bana "mp4" dahil geçerli seçenekler sunuyor.


Yapay zekanın önerdiği hiçbir şey işe yaramayınca pes etti ve makinemde yt-dlp'nin gerçekten kurulu olduğundan emin olmamı tavsiye etti ve bana bunun nasıl yapılacağını gösterdi.


Vazgeçmek için iyi bir zaman olduğunu düşündüm. Şaşırtıcı derecede iyi bir çabaydı ve sorunu çözmese bile bana bazı yararlı söz dizimi gösterdi ve beni düşünmeye sevk etti.


Bu arada ilgilenirseniz, işte gerçek çalışan bir betiğin nasıl görüneceği.

 #!/bin/bash # Prompt user for YouTube video URL read -p "Enter YouTube video URL: " url # Download video from YouTube using yt-dlp yt-dlp $url # Get the name of the downloaded video file original_filename=$(ls | awk '/mp4/ || /webm/ || /mkv/') # Change the downloaded video filename to "myvideo.mkv" mv "$original_filename" /home/ubuntu/vids/myvideo.mp4

Kodun ilk iki satırı ChatGPT'nin önerdiği gibidir. Ancak daha sonra geçerli dizindeki tüm dosyaları listeleyerek ve awk kullanarak yalnızca mp4, webm veya mkv içeren dosya adlarını filtreleyerek dosya adını izole ediyorum. (Bu, dizinde hiçbir zaman aynı anda birden fazla video dosyasının olmayacağını varsayar.)


Daha sonra dosya adı original_filename değişkenine yazılacaktır. Daha sonra bu değişkeni, myvideo.mp4 dosyasını yeniden adlandırmak için move komutunun bir parçası olarak kullanacağım. Anlayabildiğim kadarıyla, gerçekte hangi format gönderilirse gönderilsin bu işe yarayacak.

Kapanış

Yapay zeka bugün gerçek dünyadaki programlama görevleri için tam olarak hazır olmayabilir, ancak yarın ya da gelecek yıl o noktaya geleceğine dair bahse girmek istemem.


Bu arada, zorlu bir programlama göreviyle karşılaştığınızda ChatGPT gibi araçlarla ilgilenmenizi kesinlikle tavsiye ederim.


İki zihin (neredeyse) her zaman tek zihinden daha iyidir.


HackerNoon AI istemi aracılığıyla oluşturulan, "Bash partisi düzenleyen bir AI robotu" şeklindeki öne çıkan görsel.


Abone olabileceğiniz YouTube kanalımın yanı sıra, web sitem makale, kitap ve kurs olarak mevcut her türlü teknoloji iyiliğine bağlantı vermektedir.


Burada da yayınlandı.