Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

ChatGPT के साथ प्रोग्रामिंग को जोड़ना:GPT‑3.5 की बैश दक्षता का मूल्यांकन करना

ChatGPT के साथ प्रोग्रामिंग को जोड़ना:GPT‑3.5 की बैश दक्षता का मूल्यांकन करना <पी> हम कृत्रिम बुद्धिमत्ता और प्राकृतिक भाषा प्रसंस्करण के बारे में - और विशेष रूप से ओपनएआई के जीपीटी के नवीनतम संस्करण के बारे में - कई हफ्तों से सुन रहे हैं। <पी> GPT 3.5 की हालिया रिलीज़, और विशेष रूप से बिल्कुल नया ChatGPT टूल, निश्चित रूप से एक बड़ी छलांग है।

<पी> आपने ऐसे लोगों के बारे में पढ़ा होगा जो एआई से रियल एस्टेट अनुबंध और वसीयत तैयार करने और यहां तक कि प्रोग्रामिंग कोड तैयार करने के लिए कह रहे हैं। यह आलेख टूल को थोड़े अलग दृष्टिकोण से देखता है। <पी> यदि आप इसे अपने सीखने के पूरक के रूप में उपयोग करना चाहते हैं तो आप इस लेख का एक वीडियो संस्करण यहां देख सकते हैं:

<पी>

चैटजीपीटी और बैश स्क्रिप्टिंग के साथ प्रयोग

<पी> मैंने यह देखने का निर्णय लिया कि चैटजीपीटी लिनक्स बैश स्क्रिप्टिंग को कैसे संभालता है। लेकिन (स्पॉइलर अलर्ट!) जैसे ही मैंने टूल के सुझावों पर काम किया - अच्छे कोड और बुरे कोड दोनों - मुझे एहसास होने लगा कि मेरे सामने एक और भी अधिक शक्तिशाली लाभ है:एक बेहद मददगार साथी के साथ जोड़ी-प्रोग्राम करने का अवसर।

<पी> एआई अंततः मेरी समस्या को हल करने में विफल रहा, लेकिन तरीका यह असफल रहा बिल्कुल आकर्षक था। और AI को नए उत्तर खोजते हुए देखना बिल्कुल पागलपन भरा था।

पहला प्रयास - ChatGPT समस्या को हल करने का प्रयास करता है

<पी> तो चलिए देखते हैं ये सब कैसे हुआ. यहाँ, कमोबेश, वह आरंभिक संकेत है जो मैंने एआई को प्रदान किया था:

<पी> मुझे एक बैश स्क्रिप्ट लिखें जो यूट्यूब वीडियो के यूआरएल के लिए संकेत देती है और फिर उस यूआरएल से डाउनलोड करने के लिए 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
<पी> एआई स्पष्ट रूप से जानता है कि बैश स्क्रिप्ट क्या हैं और कोड कैसे प्रस्तुत करना है। यहां तक ​​कि इसने कोड की प्रत्येक पंक्ति पर टिप्पणी करने में भी बहुत अच्छा काम किया। एआई जानता है कि उपयोगकर्ता को इनपुट के लिए ठीक से कैसे संकेत दिया जाए और फिर इनपुट स्ट्रिंग को url नामक वेरिएबल में कैसे आयात किया जाए। . <पी> यह yt-dlp प्रोग्राम के बारे में भी जानता है और यह कैसे काम करता है, इसे प्रदान किए गए URL को उचित रूप से फीड करता है। फिर उसने कम से कम डाउनलोड की गई वीडियो फ़ाइल का नाम बदलकर myvideo.mp4 करने का प्रयास किया। लेकिन सब कुछ तब टूट गया जब यह मान लिया गया कि डाउनलोड फ़ाइल का नाम video-filename.mp4 होगा। उफ़.

<पी> किसी भी दर पर, एआई ने मुझे मददगार ढंग से दिखाया कि इसके कोड से स्क्रिप्ट कैसे बनाई जाए और फिर उसे कैसे चलाया जाए।

दूसरा प्रयास - 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 एक Linux उपकरण है जो फ़ाइल सिस्टम निर्देशिकाओं को हटा सकता है और वास्तविक फ़ाइल नाम के अलावा कुछ भी नहीं छोड़ सकता है।

<पी> समस्या यह है कि वेरिएबल 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 भी होते हैं। यह अनिश्चितता उन फ़ाइल नामों के साथ गड़बड़ी कर सकती है जिनके साथ हम काम कर रहे हैं, इसलिए मैंने चैटजीपीटी से उस कोड में काम करने के लिए कहा।
#!/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 जहां तक मैं बता सकता हूं, यह काम करेगा चाहे वास्तव में कोई भी प्रारूप भेजा गया हो।

समापन

<पी> कृत्रिम बुद्धिमत्ता आज वास्तविक दुनिया के प्रोग्रामिंग कार्यों के लिए पूरी तरह से तैयार नहीं हो सकती है, लेकिन मैं इसके कल या अगले साल किसी समय वहां पहुंचने के खिलाफ शर्त नहीं लगाना चाहूंगा। <पी> हालाँकि, इस बीच, जब भी आप किसी चुनौतीपूर्ण प्रोग्रामिंग कार्य का सामना करते हैं, तो मैं आपको चैटजीपीटी जैसे टूल से जुड़ने की सलाह दूंगा। <पी> दो दिमाग (लगभग) हमेशा एक से बेहतर होते हैं।

<पी> मेरे YouTube चैनल (जिसकी आप सदस्यता ले सकते हैं) के अलावा, मेरी वेबसाइट लेखों, पुस्तकों और पाठ्यक्रमों के रूप में उपलब्ध सभी प्रकार की प्रौद्योगिकी अच्छाइयों से जुड़ी है। <पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. C++ में फ़्लोटिंग पॉइंट अपवादों को समझना:कारण और समाधान C++ में फ़्लोटिंग पॉइंट अपवादों को समझना:कारण और समाधान

    फ़्लोटिंग-पॉइंट अपवाद यह तब होता है जब कोई सॉफ़्टवेयर किसी संख्यात्मक संख्या पर अनुचित ऑपरेशन करने का प्रयास करता है। इस प्रकार का अपवाद तब होता है जब कोई उपयोगकर्ता अमान्य संचालन निष्पादित करने का प्रयास करता है, जैसे शून्य से विभाजन, एक ऋणात्मक संख्या को एक सम संख्या से विभाजित करना, एक ऋणात्मक सं

  1. रेडिस को .NET 8/9/10 के साथ एकीकृत करना:एक व्यापक चरण-दर-चरण ट्यूटोरियल रेडिस को .NET 8/9/10 के साथ एकीकृत करना:एक व्यापक चरण-दर-चरण ट्यूटोरियल

    रेडिस एक उच्च-प्रदर्शन, इन-मेमोरी डेटा स्टोर है जिसका व्यापक रूप से कैशिंग, सत्र प्रबंधन, रीयल-टाइम एनालिटिक्स और बहुत कुछ के लिए उपयोग किया जाता है। इस गाइड में, हम यह पता लगाएंगे कि StackExchange.Redis का उपयोग करके Redis को .NET एप्लिकेशन के साथ कैसे एकीकृत किया जाए। , .NET के लिए सबसे लोकप्रिय R

  1. एचटीएमएल डोम स्टोरेज सेटइटम () विधि एचटीएमएल डोम स्टोरेज सेटइटम () विधि

    HTML DOM स्टोरेज सेटआइटम () विधि का उपयोग किसी दिए गए कुंजी नाम को पास करके स्टोरेज ऑब्जेक्ट आइटम को हटाने के लिए किया जाता है। सिंटैक्स स्टोरेज रिमूवल () मेथड का सिंटैक्स निम्नलिखित है - localStorage.removeItem(keyname,value); या sessionStorage.removeItem(keyname,value ); यहाँ, keyname प्रकार s