Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

ChatGPT とプログラミングのペア:GPT‑3.5 の Bash 習熟度の評価

ChatGPT とプログラミングのペア:GPT‑3.5 の Bash 習熟度の評価

私たちはここ数週間、人工知能と自然言語処理、特に OpenAI の GPT の最新バージョンについて多くの話を聞いてきました。

GPT 3.5 の最近のリリース、特に非常に新しい ChatGPT ツールは、間違いなく大きな進歩です。

AI に不動産契約書や遺言書の作成、さらにはプログラミング コードの生成を依頼する人々について読んだことがあるかもしれません。この記事では、少し異なる観点からこのツールにアプローチします。

学習を補うためにこの記事のビデオ版を使用したい場合は、ここでこの記事のビデオ版を視聴できます。

ChatGPT と Bash スクリプトの実験

ChatGPT が Linux Bash スクリプトをどのように処理するかを確認することにしました。しかし (ネタバレ注意!) ツールの提案 (良いコードと悪いコードの両方) に取り組んでいくうちに、さらに強力なメリットが目の前に迫っていることに気付き始めました。それは、非常に役立つパートナーとペア プログラミングできる機会だということです。

AI は最終的に私の問題を解決できませんでしたが、 その方法は 失敗したのは本当に魅力的でした。そして、AI が新しい答えを探しているのを見るのは本当にクレイジーでした。

最初の試み – ChatGPT が問題の解決を試みる

それでは、すべてがどのように起こったかを見てみましょう。多かれ少なかれ、私が AI に提供した最初のプロンプトは次のとおりです。

YouTube ビデオの URL を要求し、yt-dlp プログラムを使用してその URL からダウンロードする Bash スクリプトを書いてください。その後、スクリプトはファイル名を「myvideo.mp4」に変更する必要があります。

数秒後、ChatGPT はスクリプトが来ることを私に告げました。コードは次のようになります。

#!/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 は明らかに、Bash スクリプトとは何か、コードを表示する方法を知っています。コードの各行にコメントを付けるという素晴らしい仕事もしました。 AI は、ユーザーに適切に入力を求める方法と、入力文字列を url という変数にインポートする方法を認識しています。 。

また、yt-dlp プログラムとその仕組みについても認識しており、提供された URL を適切に供給します。次に、少なくともダウンロードしたビデオファイルの名前を myvideo.mp4 に変更しようとしました。しかし、ダウンロード ファイル名が video-filename.mp4 であると想定したとき、すべてが破綻しました。おっと。

いずれにしても、AI はコードからスクリプトを作成して実行する方法を親切に教えてくれました。

2 回目の試行 – ChatGPT が自動的に修正される

私の最初のフォローアッププロンプトは明らかな間違いを指摘し、数秒後、ChatGPT はそれが間違っていたことを認め、改善を提案しました。

おっしゃるとおり、私が提供したスクリプトは、ダウンロードされたビデオが video-filename.mp4 という名前のファイルに保存されることを前提としているため、期待どおりに機能しません。 。ただし、これが確実に当てはまるとは限りません。これを修正するには...

AI がこのプロセスに完全に関与しているのは驚くべきことです。最初のコードを覚えていて、私の苦情に耳を傾けて理解し、解決策を考えてくれます。 2 回目の試みは次のとおりです。

#!/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 であることです。 ローカル ファイル名は含まれませんが、インターネット アドレスが含まれます。これは間違いなくうまくいきません。

3 回目の試行 – 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 がこの更新されたコードを提供し、カットアンドペーストを楽しむことができます。

もちろん、それもうまくいきませんでした。次の試みでは、AI が少し必死になっているような気がします。

最初はうまくいかなかったとしても...少なくとも何かを学ぶことになるでしょう

副次的な問題に遭遇したため、次の試行は 1 ~ 2 回スキップします。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

それもうまくいかないと報告すると、AI は混乱し始めました。最初に、-F というメッセージが表示されました。 オプションでは有効なビデオ形式が必要でしたが、その「mp4」は無効でした。次に、「mp4」などの有効なオプションが表示されます。

AI が提案したものが何も機能しなかった場合、AI は諦めて、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

コードの最初の 2 行は、ChatGPT が提案した方法です。ただし、現在のディレクトリ内のすべてのファイルをリストし、awk を使用してファイル名を分離します。 mp4、webm、または mkv のいずれかを含むファイル名のみをフィルターします。 (これは、ディレクトリ内に一度に複数のビデオ ファイルが存在しないことを前提としています。)

ファイル名は original_filename に書き込まれます。 変数。次に、その変数を move の一部として使用します。 ファイルの名前を変更するコマンド myvideo.mp4 私の知る限り、これは実際に送信された形式に関係なく機能します。

まとめ

現在、人工知能は現実世界のプログラミング タスクに完全に対応できる状態ではないかもしれませんが、明日、あるいは来年中には人工知能がそこに到達することに賭けたくはありません。

ただし、それまでの間、難しいプログラミング タスクに直面した場合には、ChatGPT などのツールを使用することを強くお勧めします。

2 つの心は (ほぼ) 常に 1 つよりも優れています。

私の YouTube チャンネル (購読可能) のほかに、私の Web サイトには、記事、書籍、コースとして利用できるあらゆる種類の優れたテクノロジーへのリンクがあります。

無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう


  1. マスター Linux ターミナル演算:5 つの必須テクニック

    この記事では、Linux ターミナルで算術演算を行うためのさまざまな便利な方法を紹介します。この記事を読み終えるまでに、コマンド ラインで数学的計算を行う基本的なさまざまな実践的な方法を学習できるようになります。 始めましょう! 1. Bash シェルの使用 Linux CLI で基本的な計算を行う最初の最も簡単な方法は、二重括弧を使用することです。以下に、変数に格納された値を使用する例をいくつか示します。 $ ADD=$(( 1 + 2 )) $ echo $ADD $ MUL=$(( $ADD * 5 )) $ echo $MUL $ SUB=$(( $MUL - 5 )) $ ech

  2. DotfileとBashスクリプトのみを使用して新しいUbuntuデスクトップをセットアップする方法

    GitHubのオープンソースファイルで最も気に入っていることの1つは、 .bashrc の設定など、他の人がどのように(一部の人は何と呼ぶか​​もしれませんが)ありふれたことをしているのかを確認できることです。 およびその他のドットファイル。 Linux側に最初に来たときほどライシングに熱心ではありませんが、物事をより美しく、より速く、したがってより良くする構成設定を見つけたとき、私はまだかなり興奮しています。 私は最近、特にトムハドソンのドットファイルでそのようなものにいくつか遭遇しました。トムはスクリプトを書くのが好きなようです。その中には、シンボリックリンクの自動設定や、Ubuntuリ