ソフトウェアエンジニアのための「AI飲み比べ」:システムプロンプト活用術
このリポジトリは、様々なチャットボット(ChatGPT、Claude、そして他のAI)から抽出されたシステムプロンプトのコレクションです。ソフトウェアエンジニアにとって、これは新しいカクテルレシピ集のようなものです。この「レシピ集」を使うことで、以下のメリットが得られます。
裏側の理解を深める
多くのAIは、ユーザーが直接見ることのない「システムプロンプト」という形で指示を受けています。このプロンプトは、AIの振る舞い(トーン、制約、役割など)を定義しています。このコレクションを見ることで、「なぜAIがこんな振る舞いをするのか」という裏側のロジックを理解できます。
プロンプト設計のヒントを得る
優れたシステムプロンプトは、AIの応答品質を劇的に向上させます。このリポジトリは、どのような指示が効果的なのか、どんな制約を設けるべきか、といったプロンプト設計のベストプラクティスを学ぶための宝庫です。
再現性の向上
特定のAIの振る舞いを再現したい場合や、独自のAIアプリケーションを開発する際に、これらのプロンプトを参考にすることで、より正確で予測可能な結果を得ることができます。
例えるなら、居酒屋で「この料理、どうやって作ってるんですか?」と大将に聞いて、レシピを教えてもらうようなものです。このリポジトリは、AIの大将たちが「普段使ってるレシピ」を公開してくれているようなものですね。
このリポジトリは、ローカルPCにクローン(コピー)して利用するのが一般的です。gitコマンドを使えば、簡単に手元に持ってこれます。
ターミナルを開く PCのターミナル(WindowsならPowerShellやGit Bash、Macならターミナル.appなど)を開きます。
リポジトリをクローンする 以下のコマンドを実行して、リポジトリ全体をダウンロードします。
git clone https://github.com/asgeirtj/system_prompts_leaks.git
ファイルを確認する
クローンが完了すると、system_prompts_leaksというフォルダが作成されます。その中に入って、中身を見てみましょう。
cd system_prompts_leaks
ls
様々なAIの名前がついたファイルやフォルダが見つかるはずです。それぞれのファイルが、「AIカクテルのレシピ」 にあたるわけです。
それでは、実際にこれらのプロンプトをPythonで使ってみましょう。Pythonのopenaiライブラリを使って、チャットボットに特定の役割を与える例を示します。
import os
import openai
# APIキーを設定
# 環境変数からAPIキーを取得
api_key = os.environ.get("OPENAI_API_KEY")
if not api_key:
raise ValueError("OpenAI APIキーが設定されていません。")
# openaiクライアントを初期化
client = openai.OpenAI(api_key=api_key)
# ---- ここからが本番! ----
# 例として、ChatGPTのシステムプロンプトを読み込んでみる
# これはリポジトリ内のプロンプトを直接使うイメージです
# 実際には、ファイルから読み込むなどして使います
# 今回はサンプルとして、このプロンプト文字列を直接書きます
system_prompt_for_expert = """
You are an expert software developer. Your task is to provide concise, accurate, and professional code solutions and explanations.
Focus on best practices, efficiency, and clarity. Avoid verbose explanations unless explicitly asked for.
"""
# ユーザーからの質問
user_question = "How do I reverse a string in Python?"
# APIにリクエストを送信
response = client.chat.completions.create(
model="gpt-3.5-turbo", # モデルを指定
messages=[
{"role": "system", "content": system_prompt_for_expert}, # ここでシステムプロンプトをセット!
{"role": "user", "content": user_question}
]
)
# 応答を表示
print(" AIの応答:")
print(response.choices[0].message.content)
# ---- もう一つ、例として全く異なるシステムプロンプトを使ってみる ----
# 今度は、フレンドリーなアシスタントのプロンプトを使ってみる
system_prompt_for_friendly_bot = """
You are a friendly and enthusiastic assistant who loves to help users.
You use emojis and simple, encouraging language. Your goal is to make the user feel happy and confident.
"""
# 同じ質問を投げる
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_prompt_for_friendly_bot},
{"role": "user", "content": user_question}
]
)
# 応答を表示
print("\n AIの応答 (フレンドリー版):")
print(response.choices[0].message.content)
このコードを実行すると、同じ質問に対しても、システムプロンプトによって全く異なる応答が返ってくるのがわかります。まるで同じ食材を使っても、料理人が変わると味が全く違う料理になるようなものです。