আমরা কয়েক সপ্তাহ ধরে কৃত্রিম বুদ্ধিমত্তা এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণ সম্পর্কে - এবং বিশেষ করে OpenAI-এর GPT-এর সর্বশেষ সংস্করণ সম্পর্কে অনেক কিছু শুনছি।
GPT 3.5-এর সাম্প্রতিক রিলিজ, এবং বিশেষ করে একেবারে নতুন ChatGPT টুল, অবশ্যই একটি বিশাল অগ্রগতি৷
আপনি হয়তো পড়েছেন যে লোকেরা AI কে রিয়েল এস্টেট চুক্তি এবং উইল তৈরি করতে এবং এমনকি প্রোগ্রামিং কোড তৈরি করতে বলে। এই নিবন্ধটি একটু ভিন্ন দৃষ্টিকোণ থেকে টুলটির সাথে যোগাযোগ করে।
আপনি যদি আপনার শেখার পরিপূরক হিসাবে এটি ব্যবহার করতে চান তবে আপনি এখানে এই নিবন্ধটির একটি ভিডিও সংস্করণ দেখতে পারেন:
ChatGPT এবং ব্যাশ স্ক্রিপ্টিংয়ের সাথে পরীক্ষা করা হচ্ছে
আমি ChatGPT কীভাবে লিনাক্স ব্যাশ স্ক্রিপ্টিং পরিচালনা করে তা দেখার সিদ্ধান্ত নিয়েছি। কিন্তু (স্পয়লার অ্যালার্ট!) আমি টুলের পরামর্শগুলির মাধ্যমে কাজ করার সাথে সাথে - ভাল কোড এবং খারাপ কোড উভয়ই - আমি বুঝতে শুরু করেছি যে একটি আরও শক্তিশালী সুবিধা রয়েছে যা আমাকে মুখের দিকে তাকাচ্ছে:একটি বিশিষ্ট সাহায্যকারী অংশীদারের সাথে জুটি-প্রোগ্রাম করার সুযোগ৷
এআই শেষ পর্যন্ত আমার সমস্যার সমাধান করতে ব্যর্থ হয়েছে, কিন্তু পথ এটা ব্যর্থ একেবারে চটুল ছিল. এবং নতুন উত্তরের জন্য এআই অনুসন্ধান করা একেবারেই পাগল ছিল৷
৷প্রথম প্রচেষ্টা - ChatGPT সমস্যা সমাধানের চেষ্টা করে
তো চলুন দেখা যাক কিভাবে সব হয়েছে। এখানে, কমবেশি, প্রাথমিক প্রম্পট যা আমি AI-কে দিয়েছিলাম:
আমাকে একটি ব্যাশ স্ক্রিপ্ট লিখুন যা একটি YouTube ভিডিওর URL এর জন্য অনুরোধ করে এবং তারপর সেই URL থেকে ডাউনলোড করতে yt-dlp প্রোগ্রাম ব্যবহার করে৷ তারপর স্ক্রিপ্ট ফাইলের নাম পরিবর্তন করে "myvideo.mp4"
করতে হবেকয়েক সেকেন্ড পর, চ্যাটজিপিটি আমাকে বলল যে একটি স্ক্রিপ্ট আসছে। এই কোডটি দেখতে কেমন ছিল:
#!/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
এআই স্পষ্টতই জানে যে ব্যাশ স্ক্রিপ্টগুলি কী এবং কীভাবে কোড উপস্থাপন করতে হয়। এমনকি কোডের প্রতিটি লাইন মন্তব্য করে এটি একটি দুর্দান্ত কাজ করেছে। AI জানে কিভাবে সঠিকভাবে ব্যবহারকারীকে ইনপুটের জন্য প্রম্পট করতে হয় এবং তারপর কিভাবে ইনপুট স্ট্রিংটিকে url নামে একটি ভেরিয়েবলে আমদানি করতে হয়। .
এটি yt-dlp প্রোগ্রাম এবং এটি কীভাবে কাজ করে সে সম্পর্কেও জানে, এটি প্রদান করা URLটি যথাযথভাবে প্রদান করে। তারপরে এটি কমপক্ষে ডাউনলোড করা ভিডিও ফাইলটির নাম পরিবর্তন করে myvideo.mp4 করার চেষ্টা করেছে। কিন্তু সবকিছু ভেঙ্গে গেল যখন ধরে নিলাম ডাউনলোড ফাইলের নাম হবে video-filename.mp4। ওহো।
যাই হোক না কেন, AI সাহায্যের সাথে আমাকে দেখিয়েছে কিভাবে এর কোড থেকে স্ক্রিপ্ট তৈরি করতে হয় এবং তারপরে এটি চালাতে হয়।
দ্বিতীয় প্রচেষ্টা - ChatGPT নিজেকে সংশোধন করে
আমার প্রথম ফলো-আপ প্রম্পট স্পষ্ট ভুলটি নির্দেশ করে এবং কয়েক সেকেন্ড পরে, ChatGPT স্বীকার করে যে এটি ভুল ছিল এবং একটি উন্নতির প্রস্তাব দিয়েছে।
আপনি ঠিক বলেছেন, আমার দেওয়া স্ক্রিপ্টটি আশানুরূপ কাজ করবে না কারণ এটি ধরে নেয় যে ডাউনলোড করা ভিডিওটি video-filename.mp4 নামের একটি ফাইলে সংরক্ষিত হবে। . যাইহোক, এই ক্ষেত্রে নিশ্চিত করা হয় না. এটা ঠিক করতে...
এখানে এআই কীভাবে সম্পূর্ণভাবে প্রক্রিয়ায় নিযুক্ত রয়েছে তা কেবলই মন ছুঁয়ে যাওয়ার মতো। এটি তার প্রথম কোড মনে রাখে, আমার অভিযোগ শোনে এবং বোঝে এবং সমাধানের মাধ্যমে চিন্তা করে। এখানে সেই দ্বিতীয় প্রচেষ্টা:
#!/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
ঠিক আছে, তাই আমি দেখতে পাচ্ছি কিভাবে সমাধান ধরনের সঠিক লাগছিল। basename এটি একটি লিনাক্স টুল যা ফাইল সিস্টেম ডিরেক্টরিগুলিকে বের করে দিতে পারে এবং প্রকৃত ফাইলের নাম ছাড়া আর কিছুই ছাড়তে পারে না৷
সমস্যা হল পরিবর্তনশীল url একটি স্থানীয় ফাইলের নাম নেই, কিন্তু একটি ইন্টারনেট ঠিকানা। এটি অবশ্যই কাজ করবে না৷
তৃতীয় প্রচেষ্টা - ChatGPT আবার চেষ্টা করে
তাই আমি আবার চেষ্টা করেছি, ব্যাখ্যা করেছি কিভাবে এটি কাজের জন্য সঠিক হাতিয়ার ছিল না। এবং ChatGPT এটি আবার চেষ্টা করে।
#!/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
এই সময়, এটি দেখায় যে এটি নিজেকে yt-dlp ডকুমেন্টেশনের সাথে পরিচিত করেছে, পরামর্শ দেয় যে আমরা -o ব্যবহার করি ডাউনলোড করা ভিডিওটিকে একটি নাম দেওয়ার যুক্তি, যার বিপরীতে basename এখন কাজ করা উচিত। প্রতিটি পুনরাবৃত্তির সাথে, AI আমার কাটা এবং পেস্ট করার আনন্দের জন্য আমাকে এই আপডেট করা কোড দেয়৷
অবশ্যই, এটিও কাজ করতে যাচ্ছিল না। পরবর্তী প্রচেষ্টার সাথে, আমি অনুভব করি যে এআই কিছুটা মরিয়া।
প্রথমে যদি আপনি সফল না হন...অন্তত আপনি কিছু শিখবেন
আমি পরবর্তী প্রয়াস এড়িয়ে যেতে যাচ্ছি, কারণ আমরা একটি পার্শ্ব সমস্যায় পড়েছিলাম:YouTube থেকে আসা ভিডিওগুলি সবসময় MP4 হয় না, সেগুলি কখনও কখনও MKV বা এমনকি WEBM হয়৷ এই অনিশ্চয়তা আমরা যে ফাইলের সাথে কাজ করছি তার সাথে তালগোল পাকিয়ে ফেলতে পারে, তাই আমি ChatGPT কে কোডটিতে কাজ করতে বলেছি।
#!/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
যখন আমি রিপোর্ট করেছি যে কীভাবে এটিও কাজ করবে না, তখন এআই বিভ্রান্ত হতে শুরু করে। প্রথমে এটি আমাকে বলেছিল যে -F বিকল্পটি একটি বৈধ ভিডিও বিন্যাস আশা করছিল, কিন্তু সেই "mp4" বৈধ ছিল না৷ তারপর এটি আমাকে "mp4" সহ বৈধ বিকল্পগুলি দেয়৷
যখন এআই-এর প্রস্তাবিত কিছুই কাজ করেনি, তখন এটি ছেড়ে দিয়েছিল, আমাকে নিশ্চিত করতে পরামর্শ দিয়েছিল যে আমার মেশিনে yt-dlp আসলে ইনস্টল করা হয়েছে এবং আমাকে কীভাবে তা করতে হবে তা দেখায়।
আমি ভেবেছিলাম যে হাল ছেড়ে দেওয়ার একটি ভাল সময় ছিল। এটি একটি আশ্চর্যজনকভাবে ভাল প্রচেষ্টা ছিল এবং এটি সমস্যার সমাধান না করলেও, এটি আমাকে কিছু দরকারী সিনট্যাক্স দেখিয়েছিল এবং আমাকে ভাবতে বাধ্য করেছিল৷
যদি আপনি আগ্রহী হন, যাইহোক, এখানে একটি বাস্তব কাজের স্ক্রিপ্ট কেমন দেখাবে।
#!/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
কোডের প্রথম দুটি লাইন ChatGPT এর প্রস্তাবিত উপায়। কিন্তু তারপরে আমি বর্তমান ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করে এবং awk ব্যবহার করে ফাইলের নামটি আলাদা করি শুধুমাত্র mp4, webm, অথবা mkv ধারণকারী ফাইলের জন্য ফিল্টার করতে। (এটি অনুমান করে যে ডিরেক্টরিতে একবারে একাধিক ভিডিও ফাইল থাকবে না।)
তারপর ফাইলের নাম original_filename লেখা হবে পরিবর্তনশীল আমি তারপর একটি move এর অংশ হিসাবে সেই ভেরিয়েবলটি ব্যবহার করব myvideo.mp4 ফাইলের নাম পরিবর্তন করার কমান্ড আমি যতদূর বলতে পারি, আসলে যে ফরম্যাটটি পাঠানো হয়েছে তা বিবেচনা না করেই এটি কাজ করবে।
র্যাপিং আপ
কৃত্রিম বুদ্ধিমত্তা আজ বাস্তব-বিশ্বের প্রোগ্রামিং কাজগুলির জন্য পুরোপুরি প্রস্তুত নাও হতে পারে, তবে আমি এটি আগামীকাল... বা পরের বছর কিছু সময় পাওয়ার বিরুদ্ধে বাজি ধরতে চাই না।
যদিও এর মধ্যে, যখনই আপনি একটি চ্যালেঞ্জিং প্রোগ্রামিং টাস্কের মুখোমুখি হন তখন আমি ChatGPT-এর মতো সরঞ্জামগুলির সাথে জড়িত থাকার পরামর্শ দেব।
দুটি মন (প্রায়) সবসময় একটির চেয়ে ভাল।
আমার YouTube চ্যানেল ছাড়াও (যেটিতে আপনি সাবস্ক্রাইব করতে পারেন), আমার ওয়েবসাইট নিবন্ধ, বই এবং কোর্স হিসাবে উপলব্ধ সমস্ত ধরণের প্রযুক্তিগত ভালোর সাথে লিঙ্ক করে৷
বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন