本番向けLLMアプリのプロンプトエンジニアリング
システムプロンプトの設計、few-shot例、出力形式、リトライロジック、コスト最適化について学習します。
「本番向けLLMアプリのプロンプトエンジニアリング」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
本番環境でのプロンプト設計
実際のアプリでは、プロンプトはコードと同じです。構造化、テスト、信頼性が必要になります。優れたプロンプトエンジニアリングによって、ハルシネーションを減らし、出力形式を徹底し、コストを制御できます。このレッスンでは、本番環境で重要なテクニックを扱います。
System promptの設計
system promptは、モデルの役割、トーン、制約、ルールを定めます。具体的に記述してください。アシスタントが何であるか、何をしなければならないか、何をしてはいけないか、回答の形式を明示します。明確なsystem promptは、モデルの動作を導く最も強力な手段です。
system = (
"You are a support agent for an e-commerce store. "
"Answer only questions about orders and shipping. "
"If asked anything else, politely decline. "
"Keep replies under 3 sentences."
)Few-shotの例
Few-shot promptingとは、入力と出力の例をモデルに示してパターンを学習させる方法です。実際のリクエストの前に、user/assistantメッセージを交互に配置します。
messages = [
{"role": "system", "content": system},
{"role": "user", "content": "Classify: I love this!"},
{"role": "assistant", "content": "positive"},
{"role": "user", "content": "Classify: This broke instantly."},
{"role": "assistant", "content": "negative"},
{"role": "user", "content": "Classify: It is okay I guess."}
]Few-shotが機能する理由
例を示すと、指示だけの場合よりも意図を明確に伝えられます。1語、JSON、ラベルなど、正確な出力形式を固定できるため、分類、抽出、フォーマットのタスクで一貫性が大幅に向上します。
JSON出力の強制
機械で読み取る返信が必要な場合は、response_formatでJSONモードを要求します。{"type": "json_object"}を指定すると、モデルは有効なJSONだけを出力するよう制約されるため、安全に解析できます。
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)tiktokenによるトークン数のカウント
コストとコンテキストの上限は、トークン単位で測定されます。tiktokenライブラリを使うとローカルでトークン数をカウントできるため、送信前に予算を見積もれます。pip install tiktokenでインストールできます。
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))トークン数のカウントが重要な理由
各モデルにはコンテキストウィンドウ(トークン数の上限)があり、料金はトークン単位で発生します。あらかじめカウントしておけば、履歴を削減したり、大きすぎる入力を拒否したり、リクエストがサーバーを離れる前にコストを予測したりできます。
def cost_estimate(text, price_per_1k=0.005):
enc = tiktoken.encoding_for_model("gpt-4o")
n = len(enc.encode(text))
return n, n / 1000 * price_per_1kレート制限への対処
本番環境のトラフィックでは、レート制限(HTTP 429)や一時的なエラーが発生します。クラッシュさせるのではなく、指数バックオフを使って再試行してください。tenacityライブラリを使えば、1行のデコレーターで実装できます。
pip install tenacity
from tenacity import retry, wait_exponential, stop_after_attempttenacityによる再試行
API呼び出しに@retryを付けます。wait_exponentialで試行間の待機時間を徐々に増やし、stop_after_attemptで試行回数の合計に上限を設定します。これにより、一時的な障害から適切に回復できます。
@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)出力用JSON Schemaの定義
JSONモードを強制する場合は、キーを予測可能にするため、プロンプト内で求める正確な構造を必ず説明してください。スキーマを通常のテキストで明記し、JSONモードを組み合わせることで、毎回解析・検証可能な有効な結果を得られます。
system = (
"Return ONLY JSON with this shape: "
"{\"sentiment\": \"positive|negative|neutral\", "
"\"confidence\": number between 0 and 1}"
)すべてを組み合わせる
本番環境でのプロンプトパイプラインは、厳格なsystem promptを設計し、few-shot examplesを追加し、必要に応じてJSON出力を強制し、コストとコンテキストを管理するためにトークン数をカウントし、呼び出しをretryロジックでラップします。これらを組み合わせることで、LLM機能の信頼性が高まります。
理解度チェック
本番環境でのプロンプト設計についての理解度を確認しましょう。
振り返り:本番環境向けプロンプト作成
厳密なシステムプロンプトの作成方法、Few-shot例による挙動の制御、そしてresponse_formatのJSONモードによる構造化された応答の保証について学びました。tiktokenでトークン数を数えてコンテキストとコストを管理し、レート制限に対するtenacityのリトライで堅牢性も高めました。
よくある質問
「本番向けLLMアプリのプロンプトエンジニアリング」レッスンは無料ですか?
はい。「本番向けLLMアプリのプロンプトエンジニアリング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「本番向けLLMアプリのプロンプトエンジニアリング」で何を学びますか?
システムプロンプトの設計、few-shot例、出力形式、リトライロジック、コスト最適化について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「本番向けLLMアプリのプロンプトエンジニアリング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- OpenAI API:chat.completionsとストリーミング
- Pythonで使うAnthropic Claude API
- LLMでのFunction Callingとツール利用
- 本番向けLLMアプリのプロンプトエンジニアリング