見出し画像

【ChatGPT×プログラミング】プロンプトエンジニアリングのコツ

こんにちはーー


AI × プログラミング

AIでプログラミングした結果や、コツなど少しわかってきたので共有。

今回ChatGPTで作ったものはナビアプリ

  • 車のナビのように、エンジンをつけた瞬間アプリを開き、現在地を追跡

  • 自分が向いている方向が画面上部→縦にしないと無理だった、、、

  • 右上のボタンをタップすると標準マップアプリが開き、ルート検索などに利用

※エンジンをつけてからアプリを開くのは、アップルのショートカットと、充電機能を利用

AIでプログラミングする時のコツ

  1. 一番最初に作りたい機能を箇条書きで伝える

  2. コメントアウトをできるだけ利用

  3. うまくいかない時は、デバッグログをそのままAIに伝える

  4. それでもうまくいかない時は提案

一番最初に作りたい機能を、箇条書きで伝える

まず初めに作りたいものを正確に伝える。
これは人間でもおなじ。

これから車の中で利用するナビアプリを作成したいです。細かい機能は箇条書きでお伝えします。
・マップを開いた瞬間、日本全体が表示され、徐々に現在地に近づく
・今向いている方向をスマホの画面上にしたい
・スマホを傾けることも想定しているので、横にした場合、画面の上を切り替えたい
・常に現在地を表示させたいので、できるだけリアルタイムで追跡してほしい
・ナビの機能は時間がかかると思うので、ボタンを設置し、標準のマップアプリを開いてほしい

こんな感じに箇条書きにすると、AIもわかりやすいような気がしている。
最初の段階である程度決めていないと、目的とはかけ離れたソースコードを提供してくる。

その場合修正すれば良いが、AIも疲れるので、あまり負担はかけないほうがいいだろう

コメントアウトをできるだけ利用

完全に自分一人でソースコードを書くのであれば問題ないが、チームで動く場合、コメントは必要。

指示した内容にソースコードを生成してくれない時に、特に役立つ

時にはソースコードをそのままチャットに投げることもあるが、その時コメントアウトを利用するとさらに正確性が高まる

一応変数名などは変えておいた方がいいかも。
あと、影響がない程度に少し修正するなど

例えば、極端に簡単な例を出す。

int a = 1;
int b = 1;
int result = a + b;
System.out.println("数値としての計算結果: " + result);  // 出力: 2

上記のようなプログラムを作りたいと、指示したとする。
だけど下記のようなソースコードが返ってくることもある。

String a = "1";
String b = "1";
String result = a + b;
System.out.println("文字列としての結合結果: " + result);  // 出力: 11

確かにわかっているようで、違うことをやっている。

そんな時はコメントを積極的に使おう

//今月の売り上げを計算するために取得
String a = "1";
//今日の売り上げを計算するために取得
String b = "1";
//今月の売り上げに今日の売り上げを含める
String result = a + b;
//今日を含めた今月の売り上げを表示させる
System.out.println("文字列としての結合結果: " + result);  // 出力: 11うまくいかないときは、

コメントというよりかはAIのためコメント
コメントを追加したソースコードを含め「数字の表示が正しくありません」というと、修正してくれるだろう

それでもうまくいかない時は、提案

何度もやり取りをしていると、自分も仕組みがわかってくる。

そこで「このようにすれば良いのでは?」と思うようになる。

今までaとbのやり方を何度も試してみましたが、思ったように動きません。
そこで思ったのですが、そもそもaが必要ないとおもいはじめました。

なのでbのやり方に合わせ、新しくcというやり方も追加すると、うまくいくかもしれません。

100行目でエラーが出ていると思いますが、本当の原因は95行目の、変換している場所ではないですか?

一旦整理しましょう。スマホが横向きだと画面の向きが90°ずれて、縦だと正しいので縦を前提に機能を実装しましょう。
・縦にしている状態で現在地を取得
・方角を認識して、向いている方向を画面上部に
・その後動いても追跡するようにしてください

何度もChatGPTとやりとりした、ナビアプリ

下記のソースコードはご自由に!!

ここから先は

3,827字
この記事のみ ¥ 300

メンバーシップ加入で、全ての記事が閲覧できます。