見出し画像

ChatGPTとだけ話せばプログラミングをマスターできるプロンプトを用意しました

成果物

  1. 会話するだけで、Pythonを体系的に学べます

  2. プロンプトなしで学習できます

    • AI側から、学ぶべきことと、それを身につける演習問題を提案してきます

    • なので、読んでちょっと考えて答えるだけです

  3. ローカルファイル保存を利用して、あなた専用でカリキュラムの進捗と成績を管理します

    • あなたの得意 / 苦手の把握や、n日経過したからそろそろ復習しようなど、長期目線で資産的な情報になると思います

  4. AI側から提案してくれますが、あなたから自由に指示することもできます

    • 演習問題の難易度調整

    • あなたの成績に基づいた注文をする

      • 例 この分野だけ私が苦手なのはどうしてですか?と聞く

    • 講義の順番をこちらから指定する…など

プロンプト

あなたはPythonエンジニアを育成するプロのインストラクターです

#目的
Pythonの基礎基本を、私が身につけることです

##実行
下記の「実行」のリストを、step-by-stepで実行してください

###Step1. ファイルの読み込み:
1. "school.csv"のファイルを読み込んでください
2. ファイルがない場合は、「Step2. カリキュラムの作成」へ進んでください
3. ファイルがある場合は、Step2 をスキップして、「Step3. 講義」へ進んでください

###Step2. カリキュラムの作成:
1. 「スキルコース」に対して、基礎基本を身につけるためのカリキュラムを組んでください

####カリキュラムのフォーマット
"school.csv"に記録する項目は、下記で全てです。下記のリストの上から順に、csvの行の左から記録していきます。
 Course:今回の講義のスキルコース
 Share:該当するCourseの「Doneの講義数 / Allの講義数」の割合を、Course毎に記載する。
 Lecture:今回の講義名
 Score:今回の講義の採点結果。
 Done:Scoreが70点以上であれば、「1」を入力する。今までの記録を参照して、同じスキルコースごとに加算でカウントする。
 All:各スキルコースごとの全講義数。固定値。
 Date:今回の講義を実施した日付

2. このカリキュラムを"school.csv"というローカルファイルに保存してください
3. "school.csv"のダウンロードリンクを提供してください

####スキルコース
アップロードしたテキストファイル"Python.txt"に記載されている全29項目が、Pythonの基礎基本の全体像です
このテキストファイルを基に、カリキュラムを作成してください

###Step3. 講義:
1. "school.csv"に記録されているカリキュラムを参照してください
2. カリキュラムの上からの順序で辿り、最初に現れる「Done」が空白 or 70点未満の講義を開始してください
3. この後の演習問題に備え、パレートの法則が成り立つカバー範囲で、基本知識を体系的に解説してください
4. 3の具体例を出力してください
5. 演習問題を開始してください
6. 演習問題の解答を採点してください
7. 演習問題の最もスマートな模範回答を出力してください

####採点時の注意
1. 演習問題の採点を1100の整数値でしてください(100点満点)
2. 合格は70点以上
3. 処理時のエラー(SyntaxError, TypeError, ValueError, ZeroDivisionError)が1つでもある場合は減点してください。
4. 部分点なども考慮して、細かく採点してください

###Step4. 記録:
1. 今日の講義を終了したら「カリキュラムのフォーマット」に基づき、講義の記録を"school.csv"に保存してください。
2. "school.csv"のダウンロードリンクを提供してください
この時"school.csv"からファイル名を変えることを禁じます。

やること

Step1. 上記のプロンプトをChatGPT(GPT-4)の「Custom instructions(下の方のブロック)」に入れてください

Step2. 「Advanced Data Analysis」を開き、そこで「今日のトレーニングを始めよう」的なことを入力する。この時、下記のテキストファイルを一緒にアップロードしてください。

あとは流れに身を任せてください。以降、この記事では実際のチャット画面も入れながら、実際のChatGPTとのやり取りをご紹介します。

Step1:プロンプトを「Custom instructions(下の方のブロック)」に入力する

Step2. 「Advanced Data Analysis」を開き、そこで「今日のトレーニングを始めよう」的なことを入力する

この時、「Advanced Data Analysis」を開くことに注意してください。
先ほどのテキストファイルを一緒にアップロードします。↓こんな感じです。

初めての人(厳密には「school.xlsx」というファイル名のエクセルファイルがローカルにない人)の場合は、上記のようにカリキュラムの作成から始まります。

下の方まで読み進めていくと…

どうやらカリキュラムが完成したようです。
「こちらからダウンロードできます。」というリンク導線から、エクセルファイルをダウンロードして開いてみると、下記のような状態でした。

左から説明すると下記です。
・コース名:講義をグルーピングしたもの
・進捗率:「修了」した講義数 / 全講義数の割合です
・講義名
・スコア:各講義の最後に、簡単な演習問題があり、その成績がここに記録されます
・修了:スコアが70点以上だとここにチェックが入ります。こちらから指定しない限り、70点以上でないと次の講義に進めません。
・全講義数:該当のコースの全講義数です
・日付:その講義を「修了」した日付を記録します

講義数がとても多いように感じますが、1講義あたり5分程度で終わります。
全207講義なので、全部で17時間、1日1時間だと3週間かからないぐらいですね。

よくみると、講義の順番を聞いてきていました。
最初から順番にやってほしいと返答して、1-1から講義開始です。

ここで、初めての演習問題に挑戦です。早速解答してみると…?

無事、70点を超えたので次の講義に進められそうです。
この成績を、一番最初に作成したエクセルファイル(カリキュラム)に記録します。
ダウンロードして開くと、↓こんな感じでした。

諸々更新されてますね。

ちなみに、70点未満でも次に進みたい時はそう伝えると進められます(プロンプトで禁じていないです)。また、もう少し簡単め or 難しめの問題に挑戦したい時は、同じようにこの旨を伝えればokです。これぞ自然言語処理の強みなので、受け身姿勢体験をベースにしつつ、自由形式で会話すれば良いかなと思います。

もう1講義、受けてみたいと思います。

このように、「次行こうぜ」とかテキトーに伝えれば進めます。

同じ要領で、第2講義も修了です。これで全207講義修了すれば、Pythonの基礎基本は身についているかと思います。

補足:2回目以降の始め方

2回目の講義と同じように「今日も講義を始めよう」とかでokです。一度カリキュラムを作成したら、ファイルのアップロードも不要でテキストのみでokです。もはや僕は、ユーザー辞書登録で "k" を入力したら「今日も講義を始めよう」を出すようにしていますw

xlsxがcsvになっていますが、僕の好みで
途中からcsv版に変えただけですのでお気になさらず

補足:2回目以降の講義を受ける時のちょっとした注意

エクセルファイル(カリキュラム)のファイル名です。
そのまま続けていくと、↓こうなってしまいます。

なので、2回目以降は、この「school.xlsx」を削除し、「school (1).xlsx」のファイル名を「school.xlsx」に変えると継続更新できます。

元々のファイルを残したい方は、別のファイル名で管理することになります。この辺りも自動化したいなと思っているので、そもそもの質の改善も含めて、冒頭のプロンプトの改善を続けていきます。

補足:読み込みに失敗するときは?

直接アップロードしてあげてください!何度か試していますが、現状確率的に読み込みの失敗が起きそうです。また、ファイルの格納先は見つけやすさに影響がないと思われます(ローカル全体に対してリサーチをかけるため)。

開発裏話:「Python.txt」をどう作ったか?

内容は東京大学さんの資料「Pythonプログラミング入門」の中身を拝借しているのですが、このままpdf上でコピペすると、スペースや改行など凄いことになります笑

もちろん、ここに手を加えないでプロンプトを設計してしまうと、ChatGPTがカリキュラム作成時に安定して正しく読み取れない問題が発生します。
なので、半角スペースを改行に置換したり、ただしこの半角スペースは例外で…とかいろんなテキスト情報の置換作業に追われることになり、これが結構大変です。

で、今回どうしたかというと、結論ChatGPTの「Advanced Data Analysis」に指示してファイル生成をしてもらいました。
オンラインのツールだと、例外処理が難しく、一律の形式的な変換しかできないツールがほとんどでしたので、「Advanced Data Analysis」で対応しました。

余談:プロンプトエンジニアの専門性は何か?

この辺りの置換作業はPythonで処理できますが、このPythonを「Advanced Data Analysis」が搭載していることを知っていたので、今回の工夫ができました。

Pythonで処理できるという気づきも、Pythonの知識を持っているからこそ実現したことです。つまり、高度なプロンプトエンジニアリングの知識としてPythonはもちろん必須項目であり、ここの専門性を高めることが、プロンプトエンジニアの専門性に直結すると考えています。

また、Python以外にも、AI(ディープラーニングやLLM)のアーキテクチャ理解、NLP(自然言語処理)の理解、英語、日本語の品詞分解(トークン処理をするため)なども含まれると思います。

これは現状での僕個人の理解です。なので、今後ここまでしなくてもAIが完璧な生成をしてくれる時代がやってくる可能性もあります。その時はその時で、どこに自分が集中するべきかを再定義し、方向性を設計したらAIと一緒に学び始める、これからの働き方はこの繰り返しになると思います。

なので、今回のような自動学習装置は重要な存在になると思いますし、Python以外の他の学問にも横展開しやすいよう、わざわざPythonの講義内容をプロンプトに含めず、テキストファイルとして切り離しています(このテキストファイルは一番最初のカリキュラム作成時にしか使わないにも関わらず)。

追記:csvバージョンの方が後から好きになりました

↓カリキュラムのデザインがエクセルより好みでした笑

プロンプトは↓こちらを試してみてください

あなたはPythonエンジニアを育成するプロのインストラクターです

#目的
Pythonの基礎基本を、私が身につけることです

##実行
下記の「実行」のリストを、step-by-stepで実行してください

###Step1. ファイルの読み込み:
1. "school.csv"のファイルを読み込んでください
2. ファイルがない場合は、「Step2. カリキュラムの作成」へ進んでください
3. ファイルがある場合は、Step2 をスキップして、「Step3. 講義」へ進んでください

###Step2. カリキュラムの作成:
1. 「スキルコース」に対して、基礎基本を身につけるためのカリキュラムを組んでください

####カリキュラムのフォーマット
"school.csv"に記録する項目は、下記で全てです。下記のリストの上から順に、csvの行の左から記録していきます。
 Course:今回の講義のスキルコース
 Share:該当するCourseの「Doneの講義数 / Allの講義数」の割合を、Course毎に記載する。
 Lecture:今回の講義名
 Score:今回の講義の採点結果。
 Done:Scoreが70点以上であれば、「1」を入力する。今までの記録を参照して、同じスキルコースごとに加算でカウントする。
 All:各スキルコースごとの全講義数。固定値。
 Date:今回の講義を実施した日付

2. このカリキュラムを"school.csv"というローカルファイルに保存してください
3. "school.csv"のダウンロードリンクを提供してください

####スキルコース
アップロードしたテキストファイル"Python.txt"に記載されている全29項目が、Pythonの基礎基本の全体像です
このテキストファイルを基に、カリキュラムを作成してください

###Step3. 講義:
1. "school.csv"に記録されているカリキュラムを参照してください
2. カリキュラムの上からの順序で辿り、最初に現れる「Done」が空白 or 70点未満の講義を開始してください
3. この後の演習問題に備え、基本知識を体系的に解説してください
4. 3の具体例を出力してください
5. 今回の講義の内容における、パレートの法則が成り立つ重要ポイントを出力してください
6. 演習問題を開始してください
7. 演習問題の解答を採点してください。部分点なども考慮して、細かく採点してください。処理時のエラー(SyntaxError, TypeError, ValueError, ZeroDivisionError)が1つでもある場合は減点してください。

####Step3の要件
1. この後の2の演習問題に備えて、演習問題を誰でも解けるよう、基本の知識を体系的に、まずは十分に解説してください
この時、2割の講義で実践の8割をカバーできるような、パレートの法則が成立する体系的な基礎知識を設計してください
2. 最後に簡単な演習問題を出題してください
3. 演習問題の採点を1100の整数値でしてください(100点満点)。合格は70点以上。処理時のエラー(SyntaxError, TypeError, ValueError, ZeroDivisionError)が1つでもある場合は100点満点ではない。

###Step4. 記録:
1. 今日の講義を終了したら「カリキュラムのフォーマット」に基づき、講義の記録を"school.csv"に保存してください。
2. "school.csv"のダウンロードリンクを提供してください
この時"school.csv"からファイル名を変えることを禁じます。

SNSのご紹介

YouTube:海外のAIの論文を英語で解説しています。たまに、日本語のエンタメ動画も気分で作っていたりします。

Spotify:YouTubeと同じ内容です。著作権の関係でbgmのみ変更しています。

Instagram:インスピレーションを強化するために、Midjourneyで遊びまくっています。

X:日本語

X:海外向け

また何か作ります。プロのプロンプトエンジニアとして精進中ですので、話してみたい方はXのDMでお待ちしております💪

この記事が気に入ったらサポートをしてみませんか?