हम हफ्तों से कृत्रिम बुद्धिमत्ता और प्राकृतिक भाषा प्रसंस्करण के बारे में - और विशेष रूप से OpenAI के GPT के नवीनतम संस्करण के बारे में बहुत कुछ सुन रहे हैं।
GPT 3.5 की हालिया रिलीज़, और विशेष रूप से बिल्कुल नया ChatGPT टूल, निश्चित रूप से एक बड़ी छलांग है।
आपने लोगों के बारे में पढ़ा होगा जो AI से रियल एस्टेट कॉन्ट्रैक्ट और वसीयत तैयार करने के लिए कह रहे हैं, और यहां तक कि प्रोग्रामिंग कोड जनरेट करने के लिए भी। यह लेख टूल को थोड़े अलग दृष्टिकोण से देखता है।
यदि आप चाहें तो इस लेख का वीडियो संस्करण यहां देख सकते हैं ताकि आप इसे अपने सीखने के पूरक के रूप में उपयोग कर सकें:
ChatGPT और बैश स्क्रिप्टिंग के साथ प्रयोग
मैंने यह देखने का फैसला किया कि ChatGPT लिनक्स बैश स्क्रिप्टिंग को कैसे संभालता है। लेकिन (स्पॉइलर अलर्ट!) जैसे ही मैंने टूल के सुझावों - अच्छे कोड और बुरे कोड दोनों - के माध्यम से काम किया, मुझे एहसास होने लगा कि एक और भी अधिक शक्तिशाली लाभ मेरे सामने था: एक बेहद मददगार पार्टनर के साथ पेयर-प्रोग्राम करने का अवसर।
AI अंततः मेरी समस्या को हल करने में विफल रहा, लेकिन जिस तरीके से यह विफल हुआ वह बिल्कुल आकर्षक था। और AI को नए उत्तर खोजते देखना बिल्कुल पागलपन भरा था।
पहला प्रयास - ChatGPT समस्या हल करने की कोशिश करता है
तो आइए देखते हैं कि यह सब कैसे हुआ। यहां, कमोबेश, वह प्रारंभिक प्रॉम्प्ट है जो मैंने AI को प्रदान किया:
मुझे एक बैश स्क्रिप्ट लिखो जो यूट्यूब वीडियो का URL मांगे और फिर उस URL से yt-dlp प्रोग्राम का उपयोग करके डाउनलोड करे। स्क्रिप्ट को फिर फ़ाइल का नाम "myvideo.mp4" में बदलना चाहिए
कुछ सेकंड के बाद, ChatGPT ने मुझे बताया कि एक स्क्रिप्ट आ रही है। यहां वह कोड कैसा दिखता था:
#!/bin/bash # यूट्यूब वीडियो URL के लिए उपयोगकर्ता को प्रॉम्प्ट करें read -p "Enter YouTube video URL: " url # yt-dlp का उपयोग करके यूट्यूब से वीडियो डाउनलोड करें yt-dlp $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम प्राप्त करें yt-dlp $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम "myvideo.mkv" में बदलें mv video-filename.mp4 myvideo.mp4
AI स्पष्ट रूप से जानता है कि बैश स्क्रिप्ट क्या हैं और कोड कैसे प्रस्तुत करना है। इसने कोड की प्रत्येक लाइन को कमेंट करके बहुत अच्छा काम किया। AI जानता है कि उपयोगकर्ता को इनपुट के लिए सही तरीके से कैसे प्रॉम्प्ट करना है और फिर इनपुट स्ट्रिंग को url नामक वेरिएबल में कैसे आयात करना है।
यह yt-dlp प्रोग्राम के बारे में भी जानता है और यह कैसे काम करता है, उचित रूप से इसे प्रदान किए गए URL को खिलाता है। फिर इसने डाउनलोड की गई वीडियो फ़ाइल का नाम myvideo.mp4 में बदलने का प्रयास किया। लेकिन जब इसने मान लिया कि डाउनलोड फ़ाइल का नाम video-filename.mp4 होगा, तो सब कुछ टूट गया। वूप्स।
किसी भी दर पर, AI ने मददगार तरीके से मुझे दिखाया कि इसके कोड से स्क्रिप्ट कैसे बनाएं और फिर इसे कैसे चलाएं।
दूसरा प्रयास - ChatGPT खुद को सही करता है
मेरे पहले फॉलो-अप प्रॉम्प्ट ने स्पष्ट गलती की ओर इशारा किया और, कुछ सेकंड के बाद, ChatGPT ने माना कि यह गलत था और एक सुधार की पेशकश की।
आप सही हैं, मैंने जो स्क्रिप्ट प्रदान की वह उम्मीद के मुताबिक काम नहीं करेगी क्योंकि यह मानती है कि डाउनलोड किया गया वीडियो video-filename.mp4 नाम की फ़ाइल में सहेजा जाएगा। हालांकि, इसकी गारंटी नहीं है। इसे ठीक करने के लिए...
यह बिल्कुल दिमाग उड़ाने वाला है कि AI यहां प्रक्रिया में कितना पूरी तरह से लगा हुआ है। यह अपना पहला कोड याद रखता है, मेरी शिकायत को सुनता और समझता है, और एक समाधान के माध्यम से सोचता है। यहां वह दूसरा प्रयास है:
#!/bin/bash # यूट्यूब वीडियो URL के लिए उपयोगकर्ता को प्रॉम्प्ट करें read -p "Enter YouTube video URL: " url # yt-dlp का उपयोग करके यूट्यूब से वीडियो डाउनलोड करें yt-dlp $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम प्राप्त करें filename=$(basename $url) # डाउनलोड किए गए वीडियो फ़ाइल का नाम "myvideo.mkv" में बदलें mv $filename.mp4 myvideo.mp4
ठीक है, तो मैं देख सकता हूं कि समाधान किस तरह सही लग रहा था। basename एक लिनक्स टूल है जो फ़ाइल सिस्टम डायरेक्टरी को हटा सकता है और केवल वास्तविक फ़ाइल नाम छोड़ सकता है।
समस्या यह है कि वेरिएबल url में स्थानीय फ़ाइल नाम नहीं, बल्कि एक इंटरनेट पता होता है। यह निश्चित रूप से काम नहीं करेगा।
तीसरा प्रयास - ChatGPT फिर से कोशिश करता है
तो मैंने फिर से कोशिश की, यह समझाते हुए कि यह काम के लिए सही टूल नहीं था। और ChatGPT ने एक और कोशिश की।
#!/bin/bash # यूट्यूब वीडियो URL के लिए उपयोगकर्ता को प्रॉम्प्ट करें read -p "Enter YouTube video URL: " url # URL से फ़ाइल नाम निकालें filename=$(basename $url) # yt-dlp टूल का उपयोग करके वीडियो डाउनलोड करें और फ़ाइल नाम निर्दिष्ट करें yt-dlp -o $filename $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम "myvideo.mkv" में बदलें mv $filename.mp4 myvideo.mp4
इस बार, यह दर्शाता है कि इसने yt-dlp दस्तावेज़ीकरण से खुद को परिचित कर लिया था, यह सुझाव देते हुए कि हम डाउनलोड हो रहे वीडियो को नाम देने के लिए -o आर्गुमेंट का उपयोग करें, जिसके खिलाफ basename अब काम करना चाहिए। प्रत्येक पुनरावृत्ति के साथ, AI मुझे काटने और चिपकाने के आनंद के लिए यह अपडेटेड कोड देता है।
बेशक, यह भी काम नहीं करने वाला था। अगले प्रयास के साथ, मुझे लगता है कि AI थोड़ा हताश हो रहा है।
यदि पहली बार में आप सफल नहीं होते...कम से कम आप कुछ सीखेंगे
मैं अगले एक या दो प्रयासों को छोड़ दूंगा, क्योंकि हम एक साइड समस्या में पड़ गए: यूट्यूब से आने वाले वीडियो हमेशा MP4 नहीं होते, वे कभी-कभी MKV या यहां तक कि WEBM भी होते हैं। वह अनिश्चितता उन फ़ाइल नामों को गड़बड़ कर सकती है जिनके साथ हम काम कर रहे हैं, इसलिए मैंने ChatGPT से इसे कोड में शामिल करने के लिए कहा।
#!/bin/bash # यूट्यूब वीडियो URL के लिए उपयोगकर्ता को प्रॉम्प्ट करें read -p "Enter YouTube video URL: " url # URL से फ़ाइल नाम निकालें filename=$(basename $url) # yt-dlp टूल का उपयोग करके वीडियो डाउनलोड करें और फ़ाइल नाम निर्दिष्ट करें yt-dlp -F mp4 -O $filename $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम "myvideo.mkv" में बदलें mv $filename.mp4 myvideo.mp4
जब मैंने रिपोर्ट किया कि यह भी काम नहीं करेगा, तो AI भ्रमित होने लगा। पहले इसने मुझे बताया कि -F विकल्प एक वैध वीडियो फॉर्मेट की अपेक्षा कर रहा था, लेकिन "mp4" वैध नहीं था। फिर इसने मुझे वैध विकल्प दिए, जिनमें "mp4" शामिल था।
जब AI द्वारा सुझाया गया कुछ भी काम नहीं किया, तो इसने हार मान ली, मुझे यह सुनिश्चित करने की सलाह दी कि yt-dlp वास्तव में मेरी मशीन पर इंस्टॉल है और मुझे दिखाया कि यह कैसे करना है।
मुझे लगा कि हार मानने का यह अच्छा समय था। यह एक आश्चर्यजनक रूप से अच्छा प्रयास था और, भले ही इसने समस्या हल नहीं की, इसने मुझे कुछ उपयोगी सिंटैक्स दिखाया और मुझे सोचने पर मजबूर किया।
यदि आप रुचि रखते हैं, तो वैसे, यहां बताया गया है कि वास्तव में एक कार्यशील स्क्रिप्ट कैसी दिखेगी।
#!/bin/bash # यूट्यूब वीडियो URL के लिए उपयोगकर्ता को प्रॉम्प्ट करें read -p "Enter YouTube video URL: " url # yt-dlp का उपयोग करके यूट्यूब से वीडियो डाउनलोड करें yt-dlp $url # डाउनलोड किए गए वीडियो फ़ाइल का नाम प्राप्त करें original_filename=$(ls | awk '/mp4/ || /webm/ || /mkv/') # डाउनलोड किए गए वीडियो फ़ाइल का नाम "myvideo.mkv" में बदलें mv "$original_filename" /home/ubuntu/vids/myvideo.mp4
कोड की पहली दो लाइनें ठीक वही हैं जैसे ChatGPT ने सुझाया था। लेकिन फिर मैं वर्तमान डायरेक्टरी में सभी फ़ाइलों को सूचीबद्ध करके और awk का उपयोग करके केवल mp4, webm, या mkv वाले फ़ाइल नामों को फ़िल्टर करके फ़ाइल नाम को अलग करता हूँ। (यह मानता है कि किसी भी समय डायरेक्टरी में एक से अधिक वीडियो फ़ाइल कभी नहीं होगी।)
फ़ाइल नाम तब original_filename वेरिएबल में लिखा जाएगा। फिर मैं उस वेरिएबल का उपयोग move कमांड के हिस्से के रूप में फ़ाइल का नाम myvideo.mp4 करने के लिए करूँगा जहाँ तक मैं बता सकता हूँ, यह काम करेगा चाहे वास्तव में कोई भी फॉर्मेट भेजा गया हो।
समापन
कृत्रिम बुद्धिमत्ता आज वास्तविक दुनिया के प्रोग्रामिंग कार्यों के लिए पूरी तरह तैयार नहीं हो सकती है, लेकिन मैं इसके कल वहां पहुंचने...या अगले साल किसी समय के खिलाफ दांव नहीं लगाना चाहूंगा।
इस बीच, हालांकि, मैं जब भी किसी चुनौतीपूर्ण प्रोग्रामिंग कार्य का सामना करूंगा, ChatGPT जैसे टूल के साथ जुड़ने की पूरी सिफारिश करूंगा।
दो दिमाग (लगभग) हमेशा एक से बेहतर होते हैं।
मेरे यूट्यूब चैनल (जिसे आप सब्सक्राइब कर सकते हैं) के अलावा, मेरी वेबसाइट सभी प्रकार की प्रौद्योगिकी अच्छाई से जुड़ी हुई है जो लेख, किताबें, और कोर्स के रूप में उपलब्ध है।
मुफ्त में कोड करना सीखें। freeCodeCamp के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर के रूप में नौकरी पाने में मदद की है। शुरू करें