このレッスンのロックを解除するには、まず「レッスン2:始めるために必要なノーコードスタック」を完了してください。前のレッスンに戻る

はじめに

AIをウェブアプリに組み込むとき、プロンプトは単なる質問ではありません — それはアプリの動作を定義する指示セットです。曖昧なプロンプトは予測不能な出力を生みます。構造化されたプロンプトは、ユーザーがどのように入力を表現しても、毎回同じ構造化された結果を返します。このレッスンでは、AI出力を一貫性があり、制御可能で、本番レディなものにするプロンプト設計のコア原則を扱います。

コア原則:出力フォーマットを明示する

アプリでAI出力が信頼できない最大の理由は、プロンプトに出力の形式が指定されていないことです。「この記事を要約してください」とAIに依頼すると、段落が返ってきたり、箇条書きが返ってきたり、一文だけが返ってきたりします — そしてその形式はリクエストごとに変わる可能性があります。

解決策は、常に出力フォーマットを明示的に指定することです。AIに返す構造を正確に伝え、制約を加えてください。例えば、特定のフィールドを持つJSONオブジェクトが必要な場合は、その旨を直接伝えましょう。

javascript
const prompt = `
Extract the product name, price, and category from this text.
Return ONLY a JSON object in this exact format:
{
"product_name": "string",
"price": "number",
"category": "string"
}
Do not include any explanation, greeting, or extra text.
Text: ${userInput}
`;

このプロンプトには曖昧さが一切ありません。AIはレスポンスの正確な形式を把握しているため、アプリ側のコードは`JSON.parse()`で確実にパースできます。

ロールとコンテキストを使って動作を設定する

AIにロールを与えることで、トーン、語彙、判断が絞り込まれます。ロールがなければ、AIは汎用的なアシスタントとしてデフォルト動作します。ロールがあれば、アプリのニーズに適応します。

javascript
const prompt = `
You are a customer support assistant for an online bookstore.
You answer in a friendly, concise tone. You never discuss topics outside of books, orders, and shipping.
Customer message: ${userMessage}
Respond in plain text, maximum 3 sentences.
`;

3つのポイントに注目してください:ロールはAIの「誰」を定義し、制約は何をしないかを定義し、出力ルールはどのように応答するかを定義します。信頼性のためには、この3つが等しく重要です。

flowchart showing the three layers of a reliable prompt — role definition, task instruction, output format constraint

条件分岐でエッジケースに対応する

実際のユーザーは空の入力、トピック外の質問、曖昧なリクエストを送ってきます。プロンプトはこれらを予測し、AIにどう対応すべきか指示しておくべきです。これがないと、AIは事実と異なる回答(ハルシネーション)を生成したり、予期しない応答をしたりする可能性があります。

javascript
const prompt = `
You are a recipe assistant. Suggest one dinner recipe based on the ingredients the user provides.
Rules:
- If no ingredients are provided, reply with: "Please provide at least one ingredient."
- If the ingredients do not form a reasonable meal, reply with: "I cannot make a recipe from those ingredients. Please try again."
- Otherwise, respond with the recipe name, a short description, and a numbered list of steps.
Ingredients: ${userIngredients}
`;

フォールバックの応答をプロンプト内で直接定義することで、エッジケースがコードに到達する前に制御できます。

避けるべきよくあるミス

アプリにおけるAIの信頼性問題の多くは、2つのパターンによって引き起こされます。第一に、複数のタスクを区切らずに1つのプロンプトに詰め込むこと — 「翻訳して、要約して、評価してください」と依頼すると、どのタスクを優先するか予測できません。第二に、温度設定その他のパラメータをそのままデフォルトにしておくこと — ほとんどのAPIでデフォルトのtemperature 1.0は創造的だが一貫性のない出力を生む一方、0.2〜0.4は構造化タスクに対してフォーカスされた再現可能な結果を生み出します。

まとめ

ウェブアプリにおける信頼できるAIの動作は、3つの習慣から生まれます:正確な出力フォーマットを指定すること、明確な制約を伴うロールを定義すること、エッジケースのための条件分岐を記述することです。これらは上級テクニックではありません — ベースラインです。本番で動くすべてのプロンプトはこの構造に従うべきであり、出荷する前にすべての出力を複数の異なるユーザー入力でテストするべきです。

レッスンの練習

レッスンのチェックポイント

学んだ内容を復習し、回答へのフィードバックを受けましょう。

0/1
回答済み · 0/1