ทดลองกับ ChatGPT และ Bash Scripting
ผมตัดสินใจทดสอบ ChatGPT ว่าเขียน Bash script ได้ดีแค่ไหน แต่พบประโยชน์ที่มากกว่า: โอกาส pair-program กับ partner ที่ช่วยเหลือได้ดี
AI ล้มเหลวในการแก้ปัญหา แต่ วิธีที่มันล้มเหลวน่าสนใจมาก การดู AI พยายามหาคำตอบใหม่ๆ น่าทึ่ง
Attempt 1: ChatGPT พยายามแก้ปัญหา
Prompt: "เขียน Bash script prompt YouTube URL แล้วใช้ yt-dlp download แล้ว rename เป็น myvideo.mp4"
Code ที่ได้:
#!/bin/bash
read -p "Enter YouTube video URL: " url
yt-dlp $url
yt-dlp $url
mv video-filename.mp4 myvideo.mp4
AI รู้จัก Bash, yt-dlp, prompting, commenting ดี แต่สมมติว่า downloaded filename คือ video-filename.mp4 ซึ่งไม่ได้รับประกัน
Attempt 2: ChatGPT แก้ไขตัวเอง
ชี้ข้อผิดพลาด AI ยอมรับผิดและเสนอแก้ไข:
filename=$(basename $url)
mv $filename.mp4 myvideo.mp4
ใช้ basename ดึง filename แต่ $url เป็น URL ไม่ใช่ local filename - ไม่ได้
Attempt 3: ChatGPT ลองอีกครั้ง
filename=$(basename $url)
yt-dlp -o $filename $url
mv $filename.mp4 myvideo.mp4
ใช้ -o option ของ yt-dlp กำหนด output filename แต่ยังมีปัญหา
ความท้าทายเพิ่มเติม: Video formats
YouTube videos ไม่ใช่ MP4 เสมอไป - บางครั้ง MKV หรือ WEBM ทำให้ filename ไม่แน่นอน
yt-dlp -F mp4 -O $filename $url
AI เริ่มสับสน: บอก -F mp4 invalid แล้วก็บอก mp4 valid อีกที 最后แนะนำเช็คว่า yt-dlp ติดตั้งหรือยัง
Working Script จริง
#!/bin/bash
read -p "Enter YouTube video URL: " url
yt-dlp $url
original_filename=$(ls | awk '/mp4/ || /webm/ || /mkv/')
mv "$original_filename" /home/ubuntu/vids/myvideo.mp4
2 บรรทัดแรกเหมือน AI แนะนำ แล้ว list files ใน directory ใช้ awk กรองเฉพาะไฟล์ mp4/webm/mkv (สมมติมีแค่ 1 video file) เก็บใน variable แล้ว mv rename
Wrapping Up
AI อาจยังไม่พร้อมสำหรับ real-world programming tasks วันนี้ แต่ไม่ควรเดิมพันว่าจะพร้อมในอีกไม่กี่เดือน
แนะนำให้ engage กับ tools อย่าง ChatGPT เมื่อเจอ programming task ที่ท้าทาย Two minds are (almost) always better than one