プロンプトエンジニアリング入門

OpenAI API で学ぶプロンプトエンジニアリング

Fouad Trad

Machine Learning Engineer

プロンプトエンジニアリングとは?

LLMに与えるプロンプトや指示を設計し、望ましい応答を得るプロセス

プロンプトエンジニアリングの用語を説明するエンジニアの画像。

OpenAI API で学ぶプロンプトエンジニアリング

プロンプトエンジニアリングはレシピ作りに似ている

料理を作るシェフの画像。

OpenAI API で学ぶプロンプトエンジニアリング

プロンプトエンジニアリングが必要な理由

  高品質なプロンプトが高品質な回答につながることを示す図。

OpenAI API で学ぶプロンプトエンジニアリング

プロンプトエンジニアリングが必要な理由

  プロンプトの品質が回答の品質に与える影響を示す図。高品質なプロンプトは高品質な回答に、低品質なプロンプトは低品質な回答につながる。

OpenAI API で学ぶプロンプトエンジニアリング

復習:OpenAI API

  • OpenAIモデルとの対話が可能
  • 本コースで設定済み
  • Chat Completionsエンドポイントへのアクセス

chatgpt_logo_white.png

OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

userロールのアイコンを示す画像。

OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

userとassistantの2つのロールのアイコンを示す画像。

OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

user、system、assistantの3つのロールのアイコンを示す画像。

OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

3つのロールのアイコンとsystemからassistantへの通信矢印を示す画像。

  • システムメッセージ: モデルの動作を制御
OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

3つのロールのアイコン、systemからassistantへの矢印、userからassistantへのプロンプト矢印を示す画像。

  • システムメッセージ: モデルの動作を制御
  • ユーザーメッセージ: ユーザーからのプロンプト
OpenAI API で学ぶプロンプトエンジニアリング

復習:メッセージのロール

メッセージには3つのロールのいずれかが割り当てられます

3つのロールのアイコン、各役割間の通信矢印を示す画像。

  • システムメッセージ: モデルの動作を制御
  • ユーザーメッセージ: ユーザーからのプロンプト
  • アシスタントメッセージ: ユーザープロンプトへの応答
OpenAI API で学ぶプロンプトエンジニアリング

復習:制御パラメーター

0から2の値を持つ温度計のアイコン。0はランダム性なし、2は最大ランダム性を示す画像。

  • temperature 回答のランダム性を制御
OpenAI API で学ぶプロンプトエンジニアリング

復習:制御パラメーター

温度計のアイコンとmax_tokensを表すスライダーのアイコンを示す画像。

  • temperature 回答のランダム性を制御
  • max_tokens 応答の長さを制御
OpenAI API で学ぶプロンプトエンジニアリング

復習:OpenAI APIとの通信

prompt = "What is prompt engineering?"

client = OpenAI(api_key="api_key")
response = client.chat.completions.create(
model = "gpt-4o-mini",
messages = [{"role": "user", "content": prompt}],
temperature = 0 )
print(response.choices[0].message.content)
Prompt engineering refers to the process of designing and refining prompts or 
instructions given to a language model like ChatGPT in order to elicit desired 
responses or behaviors. It involves formulating specific guidelines or hints to 
guide the model's output towards a desired outcome.
OpenAI API で学ぶプロンプトエンジニアリング

get_response()関数の作成

def get_response(prompt):

response = client.chat.completions.create( model = "gpt-4o-mini", messages = [{"role": "user", "content": prompt}], temperature = 0 )
return response.choices[0].message.content

使用例

response = get_response("What is prompt engineering?")
print(response)
Prompt engineering refers to the process of designing and refining prompts or instructions given to a language model 
like ChatGPT in order to elicit desired responses or behaviors. It involves formulating specific guidelines or hints 
to guide the model's output towards a desired outcome.
OpenAI API で学ぶプロンプトエンジニアリング

プロンプトの改善

prompt = "What is prompt engineering? Explain it in terms that can be understood 
by a 5-year-old"
response = get_response(prompt)
print(response)
Imagine you have a very smart friend who can understand and answer lots of 
questions. But sometimes, they might not understand exactly what you want or give 
the wrong answer. So, prompt engineering is like giving your friend really clear 
instructions or hints to help them give you the best answer possible.
OpenAI API で学ぶプロンプトエンジニアリング

練習しましょう!

OpenAI API で学ぶプロンプトエンジニアリング

Preparing Video For Download...