今や様々なシーンで活用し始めているChatGPTですが、プログラミングの生成にも活用することができます。
簡単なプログラミングはもちろんのこと、やや難易度の高そうなプログラミングもコツを掴めばChatGPTだけで生成させることも可能となります。
そこのこの記事では、ChatGPTを使ってプログラミングを自動で生成させる方法についてご紹介します。
目次
ChatGPTとは?
ChatGPTとは、OpenAIが2022年11月に公開した人工知能を搭載したチャットボットです。
一般的に知られている「生成AI」の一種でもあります。
英語圏で開発された生成AIですので得意とする言語は英語ではありますが、日本語を始め様々な言語にも対応しているため、世界的に利用されています。
特徴としては、実際の人間と対話しているような流暢な言葉でのやり取りが可能で、単に会話するだけではなく翻訳を頼んだりテキストの校正、小説を作成してもらったりプログラミング生成を依頼したりと、非常に多彩なタスクをこなすことが可能です。
ただし、ChatGPTは投げかけた質問に対してネットなどから回答を探し出して適切な構文にして回答することから、そもそもネット上の情報が誤っていたり、昨日・今日に変更が行われたような最新の情報にはアクセスできないという特性から誤った回答を返してくることもあります。
しかし、そういった部分さえ除けばChatGPTは非常に有用な生成AIであるため、実際にビジネスシーンにも広く利用されています。
ChatGPTで可能なプログラミング作業は?
前述でも少し触れていますが、ChatGPTはプログラミングの生成も可能です。
プログラミングの生成が可能ですので、その周辺の作業も任せられますので、具体的にChatGPTで可能なプログラミング領域の作業についてご紹介します。
コード生成
1つ目にChatGPTでは可能な作業は、コードの生成です。
プロンプト(命令文)で指定した要件に基づいて、短いコードスニペットやまとまったコードを生成させることができます。
もちろん、使用するプログラミング言語に関しても、PythonやJavaScriptといったメジャーなプログラミング言語から、C言語やJava、アプリ向けのSwiftやKotlin、他にもR言語やMATLABといった数理系に特化した言語にも対応可能です。
ただ、やはりPythonやJavaScriptなどはインターネット上に大量に情報があるためか、ChatGPTで生成できるプログラミングコードも高品質なコードが返ってきやすい傾向にあります。
コードの解説
2つ目にChatGPTでは可能な作業は、コードの解説です。
1つ目のコード生成とは異なり、新しくコードを作り出すアウトプットの作業ではなく、既にあるコードを解説して理解するためのサポートツールのような作業内容となります。
そのため、プログラミングを勉強中の方にとっては、分からないコードに遭遇したとしても即時回答を得られる常に傍に付いていてくれる専任の講師のような存在になりえます。
デバックのサポート
3つ目にChatGPTでは可能な作業は、デバックのサポートです。
自分で作成したコードに間違いがないかを事前に確認するという利用方法もChatGPTでは可能です。
また、既にサイトやアプリに組み込んでいるコードでエラーメッセージを吐いてしまっている場合は、そのコードやエラー内容などをプロンプトで説明することで、問題の原因や修正方法を提案させるといった使い方をすることもできます。
この作業は人が目視で行うとなると割と時間が掛かってしまうことがありますので、AIで瞬時に問題と解決策を見つけられる点でかなり有用な利用方法となっています。
アルゴリズムやデータ構成の説明
4つ目のChatGPTでは可能な作業内容は、アルゴリズムのデータ構成の説明をさせることです。
プログラミングが本業の方で経験豊富な方であれば、初めて見るプログラミングでもある程度はどのようなアルゴリズムのデータ構成になっているか予測できますが、そうではない方にとっては把握するだけでもかなりの時間を要します。
しかし、そのコードのデータ構成をChatGPTに質問することで、日本語で説明させることが可能となり、作業にかかる時間を大幅に短縮させることができます。もちろん、単に解説させるだけではなく、そのデータ構成の実装方法の提案まで行えます。
言語やツールの情報提供
5つ目のChatGPTでは可能な作業は、使用されている言語やツールの情報を提供させることです。
プログラミング領域では多くの言語が使用されていますので、プログラミングを勉強中の方にとっては使用されている言語を突き止めるだけでも一苦労ですが、ChatGPTにコードと共に解析を依頼すれば一瞬で言語を特定できます。
また、ChatGPTであれば言語の特定だけではなく、使用ツールの情報も特定し、その使い方まで提示させることができます。
いずれも、上級者には不要な用途ではありますが、初~中級者にとっては効率的に作業を進める上で便利なChatGPTの使い方となっています。
ChatGPTによるプログラミングのコツ
実際にChatGPTを使ってプログラミングの生成を試したことがある方であれば共感いただけるかと思いますが、想定しているものとは異なるものに仕上がることがあります。
というのも、ご紹介の通りChatGPTは英語でのプロンプトを得意としており、なおかつAIの能力もまだまだ発展途上ですので、日本語での複雑なプロンプトでは正しく処理できないことがあります。
しかし、ChatGPTを使ったプログラミング生成のコツを知っていれば、この問題はかなり改善されますので、そのコツについてもご紹介いたします。
プログラミング言語を指定する
まずは大前提としてChatGPTでプログラム生成を行う場合には、必ず使用する言語を指定する必要があります。
個々を始めに行わなければ、どんなに完璧なプロンプトを作成したとしても、実際に使用しない言語のコードを生成されてしまいます。
特に、まだプログラミングの経験が浅い方の場合、ChatGPTで生成されたコードがどの言語で作成されたものか判断できない可能性もあります。生成された言語が求める言語である場合は問題ありませんが、異なる言語のコードが生成されていた場合、それが原因でその後の作業が難航してしまうリスクとなります。
プロンプトを明確に
ChatGPTに対して曖昧なプロンプトでプログラミングの生成を指示しても、限られた情報からでもしっかりと形になるプログラムを生成することができます。
しかし、お試しのような使い方でもない限りは、プロンプトを明確に提示しないと他の記述との整合性が取れなくなったりと、後々のデバック作業に時間を取られることになります。
特にほとんどを自分自身で記述して、ある特定の部分のみをChatGPTで生成して組み込む場合は、より注意が必要です。
また、品質の面でもプロンプトでの要求は満たしているが、要求した内容の最低ラインの品質で返してくることも多いため、全体的にチープな仕上がりになることもありますので、プロンプトの作成は適当に行うのではなく、丁寧に作成することが推奨されます。
問題点も一緒に提示する
闇雲にChatGPTでプログラムを生成する場合や、完全に0の状態から全てChatGPTに任せる場合には不要な内容ですが、自分で作成したプログラミングで発生した問題の解決のためにChatGPTを活用する場合には、必ずプロンプトに問題点も記載する必要があります。
単に「どういったプログラムを作りたいのか」だけを記載したプロンプトをあげてしまうと、出てきた回答にも同じ問題が発生するような記述になっている可能性が残ります。
関連情報も提供する
上記の問題点の提示にも関連する項目ですが、特殊な構成のプログラミングであればある程、その背景なども細かく指示しないと要望にマッチした回答をChatGPTから得ることはできません。
ここを上手く使いこなせないと、プロンプトの作成→ChatGPT生成→検証という工程を何度も繰り返さなければいけなくなります。
反対に、プロンプトに現在抱えている問題点やそれに関連する情報を的確に記載して指示することができれば、一発で望んだ完璧なプログラミング生成を行ってくれ、作業効率を大幅に上げてくれるようになります。
小分けにしたり書き方を工夫する
複雑なプログラミングになればなるほど、ChatGPTに送るプロンプトに記載する情報量も当然多くなります。
その大量の文字を単に羅列にしただけのプロンプトにしてしまうと、英語が得意なChatGPTでは正確に要求を把握できず、誤った回答を返してくる可能性が高くなってしまいます。
そのため、プロンプトが長文になってしまい必要な条件などが多くなる場合は、小分けにして会話形式で徐々に生成を進めたり、条件を箇条書きにするなどChatGPTが理解しやすいプロンプトにする工夫が必要になります。
実際に使ってみた
論より証拠ということで、実際にChatGPTにプログラム生成をいくつか依頼してみました。
ゲームの自動生成
プロンプト | 何でも良いので、簡単に構築できるゲームを作って。 |
もちろん、簡単なテキストベースのゲームをPythonで作成する例を示します。このゲームは「数当てゲーム」です。プレイヤーは1から100までのランダムな数を当てることを試みます。ゲームのコードを以下に示します。
import random
# ランダムな数を生成
target_number = random.randint(1, 100)
# プレイヤーに説明を表示
print("1から100までの数を当ててください。")
# プレイヤーが数を当てるまでループ
while True:
try:
# プレイヤーに予想を入力させる
guess = int(input("予想した数を入力してください: "))
# 予想が正しいかどうかをチェック
if guess == target_number:
print("おめでとう!正解です。")
break
elif guess < target_number:
print("もっと大きな数です。")
else:
print("もっと小さな数です。")
except ValueError:
print("無効な入力です。整数を入力してください。")
print("ゲームを終了します。正解は", target_number, "でした。")
このコードは、プレイヤーが数を予想し、正解を当てるまで予想を受け付けます。プレイヤーが無効な入力(整数以外のもの)をすると、エラーメッセージが表示されます。
このゲームは非常に簡単なもので、より複雑なゲームを作成するにはさらなるプログラミングスキルと時間が必要です。しかし、この例を基にして、さまざまなゲームを作成することができます。
プログラミング言語の変更
プロンプト | 以下のコードをJavaScriptに書き換えて。 x = 1 y = 2 if x < y: print(‘True’) else: print(‘False’) |
以下は、与えられたPythonコードをJavaScriptに書き換えたものです。
let x = 1;
let y = 2;
if (x < y) {
console.log('True');
} else {
console.log('False');
}
このJavaScriptコードは、変数x
とy
を定義し、if
条件文を使用してx
がy
より小さい場合には ‘True’ を、それ以外の場合には ‘False’ をコンソールに出力します。JavaScriptでは、console.log
を使用して結果を表示します。
ChatGPTによるプログラミングの注意点
ChatGPTを使ったプログラミング生成は非常に便利ではありますが、その反面いくつかの注意点が存在します。
動作保証外
ChatGPTで生成されたプログラミングは基本的には問題なく稼働させることが多いですが、それらは動作保証外です。
ご紹介の通りChatGPTはネット上にある情報などをかき集めて回答しており、ChatGPTのAIが自ら動作確認をしているわけでもないので、生成されるプログラミングはあくまでも「情報通りであれば正しいプログラミング」に留まります。
ここをChatGPTは100%正しいと勘違いをすると、何かしらの問題が発生した際に正常に機能しているサーバーやネットワークまで調べなければいけない状況になります。
複雑なものを丸投げは不可能
ChatGPTによるプログラミング生成は、ある程度複雑なものでもプロンプトを工夫することで対応可能となります。
ただし、複雑なプログラムの全体を自動生成させるのは難しく、あくまでもコードの一部を生成することやアイデアを得ることが主な用途になります。
プログラミングにおいては自分自身の知識と経験が最低限必要になりますので、プログラミング未経験者がアイデアだけをChatGPTに投げて完璧なプログラミングを生成することは不可能です。複雑なプログラミング生成の場合は、ChatGPTは補助的なツールとして活用することが推奨されます。
100%正解ではない
ChatGPTから生成されたプログラミングは、残念ながら100%正しいという保証はありません。
ここで意味する「正しくない」というのは、単純に実際の動作環境で正常に機能しないという意味だけではなく、機能はするが危険なコードやセキュリティリスクを含むコードを生成してしまう可能性があるという2つの意味を含みます。
そのため、そういった知識がない方の場合は練習だったりお試しとしてChatGPTのプログラミング生成を利用する分には問題ありませんが、ビジネスシーン、特に実際に販売する商品やサービスに組み込むコードをChatGPTで生成する場合は、この2点の誤りが含まれていないか入念にチェックする必要があります。
所有権についての法的保護の動向を見守る
ChatGPTはネット上にある情報、つまり所有権が他者にあるコードなどを用いてプロンプトに沿ったプログラミングを行います。
この仕様の影響から場合によっては他者のプログラムを丸々そのまま回答として返してくることがあります。これが著作権に抵触するのではないかという意見が散見されるようになっており、ChatGPTをビジネスシーンで利用される方にとっては要注意なポイントとなります。
ただ、この記事を作成している時点ではAI先進国である欧米の弁護士でもAIが生成した作品に関しては所有権は依然として法律の未解決分野だと発言しています。
そのため、今後の法律の動向次第では著作権侵害に該当する可能性もありますので、ビジネスでの利用を検討されている場合は常に最新の情報をチェックしておく必要があります。
まとめ
ChatGPTではプログラミングの自動生成すらも可能な優秀な生成AIです。
それこそ、一部のコードだけを任せるだけではなく、プログラミング全体の作成も可能です。
しかし、プログラミング生成が可能ではありますが、生成されるプログラミングが必ずしも正しいという訳ではなく、実際の動作環境では正常に稼働しなかったり、セキュリティ上の欠陥を含んだコードが盛り込まれている場合もあります。
そのためChatGPTでのプログラミング生成は、特にビジネスに絡む場合は丸投げせずに重要ではないが手間が掛かるような場面に活用することが賢く安全な使い方と言えます。
もし今後ChatGPTの利用を検討される場合は、一度テスト環境として1日単位で利用が可能なVPSで検証してから改めて検討してみると良いでしょう。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。