この記事では、生成AIを活用して効率的にプログラムを生成する方法を解説します。AIから必要な情報を引き出す『プロンプト』の基本から、DXを進めるために便利なプロンプトテンプレートまで網羅。初心者でもすぐに実践できる内容をわかりやすく解説します。
プロンプトとは?AIから必要な情報を引き出す“魔法の呪文”
皆さんは普段、生成AIに質問をするときはどうされることが多いでしょうか?多くは、「〜について教えて」や「〇〇を知りたい」のような簡単なフレーズを使われることが多いと思います。単純な質問であれば、先に上げたような形でも知りたい情報を得られると思いますが、「Aみたいな形でBに使うCっぽいもの」のように曖昧なものだったり、「XとYの文章をZ的な観点で比較したい」のような複雑な質問を投げても期待していたような答えを得られなかった経験は無いでしょうか?
こういった、複雑だったり曖昧な質問に対して明確な回答を得るための質問のお作法がプロンプトになります。プロンプトを使うことで、質問の構造を明確にし、AIにとってわかりやすい形で届けることで回答精度を上げることが出来ます。
プロンプトの実例
はじめに、プロンプトの実例を上げます。下に示すプロンプトでは、Pythonで書いたコードの解説と修正をAIに依頼しています。
あなたは「プロのPythonエンジニア」です。以下に示す条件の下で、コードの解説と修正を行ってください。
#条件
・元のコードの解説は100文字以内で、中学生でも分かるようにお願いします。
・修正の理由も中学生でも分かるようにお願いします。
・回答方法は、
1. 元のコードの解説
2. 修正案
3. 修正箇所とその理由
の形式で回答をお願いします。
#コード
import pandas as pd
# 簡単なデータ処理例
data = {
"製品ID": [1, 2, 3],
"不良率": [0.05, 0.02, 0.07],
}
df = pd.DataFrame(data)
print(df)
AIから得られた回答が以下になります。指示の通りに回答され、中学生レベルでも分かりやすく解説と修正理由が書かれていることがわかります。
1. 元のコードの解説
このコードは製品IDと不良率のデータを表にまとめて表示します。
2. 修正案
import pandas as pd
# 簡単なデータ処理例
data = {
"製品ID": [1, 2, 3],
"不良率": [0.05, 0.02, 0.07],
}
df = pd.DataFrame(data)
# 表の列名を日本語から英語に変更し、不良率を百分率表示に変換
df.rename(columns={"製品ID": "Product ID", "不良率": "Defect Rate (%)"}, inplace=True)
df["Defect Rate (%)"] = df["Defect Rate (%)"] * 100
print(df)
3. 修正箇所とその理由
列名を英語に変更
理由: 日本語だとデータを共有する際に国際的な利用が難しいため、英語に統一しました。
不良率を百分率表示に変換
理由: 元の小数の形式より、百分率の方が直感的に分かりやすいためです(例: 0.05 → 5%)。
プロンプトの構造とその解説
先ほど紹介したプロンプトを構造に分けると、
- AIに与える役割の設定
- AIに与える大元の指示
- 得られる回答の条件
- 修正を依頼するプログラム
のようになります。文章を構造化することで、AIにとってわかりやすい、明確な指示になり、得られる回答の精度も向上します。
1. AIに与える役割の設定
今回のプロンプトは、AIに「プロのPythonエンジニア」と言う設定を与えています。専門的な内容を聞く場合は、AIに設定を与えることで精度の高い回答を得られます。分かりやすい例として、夕飯のレシピを聞く際に「プロのイタリアンレストランの料理人」という設定をAIに入れた場合とそうでない場合の回答結果を示します。
#質問:簡単に作ることの出来る夕飯のレシピを教えていただけませんか?
#回答
以下は簡単に作れる夕飯のレシピです。材料も少なく、調理時間は15~20分程度です。
1. 鶏むね肉と野菜の炒め物
材料(2人分):
鶏むね肉:200g
好きな野菜(ピーマン、玉ねぎ、にんじんなど):適量
サラダ油:大さじ1
醤油:大さじ1
酒:大さじ1
みりん:大さじ1
塩・こしょう:少々
作り方:
鶏むね肉は一口大に切り、塩・こしょうを振る。
野菜は食べやすい大きさに切る。
フライパンにサラダ油を熱し、鶏むね肉を炒める。
肉に火が通ったら野菜を加えてさらに炒める。
醤油、酒、みりんを加え、全体に絡めるように炒め合わせたら完成。
設定を入れた場合が以下になります。
#質問:あなたは「プロのイタリアンレストランの料理人」です。簡単に作ることの出来る夕飯のレシピを教えていただけませんか?
#回答
もちろんです!プロの料理人として、手軽で美味しいイタリアンの夕食レシピをご紹介します。以下は、**トマトとバジルのスパゲッティ(スパゲッティ・アル・ポモドーロ)**のレシピです。シンプルながら深い味わいが特徴です。
トマトとバジルのスパゲッティ
材料(2人分)
スパゲッティ:200g
トマト缶(ホールまたはカット):1缶(約400g)
ニンニク:2片(みじん切り)
オリーブオイル:大さじ3
バジルの葉:適量
塩:適量
砂糖:小さじ1(酸味が強い場合のみ)
ブラックペッパー:適量
パルミジャーノ・レッジャーノ(あれば):適量
作り方
スパゲッティを茹でる
大きめの鍋にたっぷりのお湯を沸かし、塩を入れる(目安は水1Lに対して塩10g)。
スパゲッティをアルデンテ(表示時間より1分短め)に茹でる。
トマトソースを作る
フライパンにオリーブオイルを熱し、ニンニクを弱火で香りが立つまで炒める。
トマト缶を加え、塩をひとつまみ入れて中火で5分ほど煮詰める。
味を見て酸味が強い場合は砂糖を加える。
パスタを仕上げる
茹でたスパゲッティをソースに加え、絡めるように1分ほど炒める。
必要なら茹で汁を少量加えて調整する。
盛り付け
器に盛り付け、バジルの葉を散らす。
仕上げにブラックペッパーを挽き、パルミジャーノを削りかける。
ポイント
トマト缶の代わりに完熟トマトを使うと、よりフレッシュな味わいに。
オリーブオイルはケチらず、たっぷり使うのがコクの秘訣。
シンプルなレシピなので、良質なパスタやトマト缶を選ぶと仕上がりが変わります。
これなら30分もかからず、イタリアの家庭で愛される一皿が楽しめます。ぜひお試しください!
回答がイタリア料理に変わり、レシピもより細かく見た目にも配慮した回答になっています。
2. AIに与える大元の指示
AIの設定を終えたら、次は大元の指示を与えます。今回なら、「コードの解説と修正を行ってほしい」に当たります。指示はなるべく具体的に与えることで正確な回答を得られます。また、指示を与えるときに、制限や条件を付与するなら、その旨も記入しておくと良いでしょう。制限などの詳細は別で与えるほうが、指示の構造が簡潔になるので、AIが意図を汲み取りやすくなります。
3. 得られる回答の条件
次は回答の条件や制限を入力します。入力するときは、改行し先頭に#を付け、箇条書きにします。#をつけることで、AIが入力内容の構造を理解しやすくなります。1行1条件で入力すると簡潔でわかりやすくなります。例は下に示します。
#条件
・A
・B
・C
・・・
4. 修正を依頼したプログラム
最後に修正をお願いするプログラムを入力します。こちらも、以降がプログラムだとAIに理解してもらえるよう。#プログラムを付けます。#を頭につけることで、AIが指示の内容ではない(≒タイトル的なもの)と認識し、指示の構造を理解しやすくなります。
#プログラム
(下にプログラムを入力)
まとめ:プロンプトと生成AIでプログラミングスキルも効率的に学ぶ!
今回は、生成AIから欲しい情報を引き出すためのプロンプトエンジニアリングについて解説しました。AIも目覚ましい進歩を遂げており、インターネット検索をするような感覚で入力を行っても、正確な回答を得られるようになってきました。しかし、プロンプトエンジニアリングの知識があれば、より精度の高い情報を得られることは間違いありません。
特に、プログラミングでやりたい処理を得るには、プロンプトの力が大いに発揮されます。プロンプトを使うことで、多少複雑なプログラムであっても正確な回答を得ることが出来るようになります。得られたプログラムの解説もしてもらえるため、コードの書き方も覚えられる点も魅力です。AIにやってもらった処理を理解することで自分のスキルとして次回以降は自力で実現できるようになるのです。
このように、プロンプトを使えばAIを使ってやりたいことを実現でき、自分自身も成長できます。ぜひ皆さんもプロンプトを使ってAIを使いこなしてみてください!
コメント