プロンプトウィザード
ざっくりしたアイデアを REST で最適なプロンプトに変えます。ガイド付きの質問をリクエストし、その答えからプロンプトを作成するか、1 回の呼び出しでプロンプトを改善します。
プロンプトウィザード API は、ざっくりしたアイデアを、生成ノード用の最適化されたプロンプトに変えます。エンドポイントは POST /v1/prompt-helper/wizard の 1 つだけで、action フィールドによって 3 つのことを行います。ガイド付きの質問をする(analyze)、答えからプロンプトを作る(generate)、1 段階でプロンプトを書き直す(enhance)です。これは、プロンプトのフィールドにある AI ボタンからエディターが開くのと同じウィザードです。
このルートは、どのエディションでも使え、ベアラートークンが必要です。呼び出しのたびに、言語モデルの呼び出し 1 回分のクレジットが確保されます。認証を参照してください。
エンドポイント
| メソッド | パス | action | 戻り値 |
|---|---|---|---|
POST | /v1/prompt-helper/wizard | analyze | { jobId, questions } |
POST | /v1/prompt-helper/wizard | generate | { jobId, prompt, recommendedModel? } |
POST | /v1/prompt-helper/wizard | enhance | { jobId, prompt, recommendedModel? } |
ガイド付きの質問をリクエストする
analyze は、アイデアと対象のノードタイプを読み取り、プロンプトを最も改善しそうな点について質問を返します。被写体、ライティング、カメラ、雰囲気などです。各質問には候補の答えが付き、ウィザードが判断できる場合は、最も良いものが選択された状態になります。prompt を省略すると、ゼロから始められます。この場合、ウィザードは重要な質問を選び、答えは何も選択しません。
curl -X POST https://app.nodaro.ai/v1/prompt-helper/wizard \
-H "Authorization: Bearer $NODARO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "analyze",
"nodeType": "generate-image",
"prompt": "a snow leopard on a ridge",
"provider": "nano-banana-pro",
"aspectRatio": "16:9"
}'import { createClient, StaticTokenAuth } from '@nodaro/sdk'
const client = createClient({
baseUrl: 'https://app.nodaro.ai',
auth: new StaticTokenAuth(process.env.NODARO_API_KEY!),
})
const { questions } = await client.promptHelper.analyze({
nodeType: 'generate-image',
prompt: 'a snow leopard on a ridge',
})nodaro prompt analyze --node-type generate-image --prompt "a snow leopard on a ridge" --json
# Interactive questions and answers in the terminal:
nodaro prompt wizard --node-type generate-image --prompt "a snow leopard on a ridge"{
"jobId": "3b7d1f9a-5c2e-4a8b-9d6f-1e4c7a2b5d8f",
"questions": [
{
"category": "lighting",
"label": "Lighting",
"options": [
{ "value": "golden-hour", "label": "Golden hour", "description": "Low warm sun, long shadows" },
{ "value": "overcast", "label": "Overcast", "description": "Soft, even light" },
{ "value": "blizzard", "label": "Blizzard haze", "description": "Flat light through blowing snow" }
],
"selected": "golden-hour",
"allowCustom": true
}
]
}レスポンスには、1〜12 件の質問が含まれます。各質問は { category, label, options, selected, allowCustom, multi? } です。
| フィールド | 意味 |
|---|---|
category | 質問の id です。答えを送り返すときに、そのまま使います。 |
label | 人に表示される、質問の文言です。 |
options | 候補の答えで、それぞれ { value, label, description? } です。 |
selected | 候補の答えの value です。multi が true の場合は値のリストになり、何も候補がない場合は null です。 |
allowCustom | 自分の言葉で答えられるかどうかです。 |
multi | 複数の答えを選べる場合にだけ存在し、true になります。 |
答えからプロンプトを作成する
generate は、答えから最適化された 1 つのプロンプトを作ります。答えた質問ごとに、選択を 1 つ送ります。{ category, value, isCustom } です。value が自分の言葉の場合は、isCustom を true にします。originalPrompt を追加すると、元のアイデアを結果に織り込めます。
curl -X POST https://app.nodaro.ai/v1/prompt-helper/wizard \
-H "Authorization: Bearer $NODARO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "generate",
"nodeType": "generate-image",
"originalPrompt": "a snow leopard on a ridge",
"selections": [
{ "category": "lighting", "value": "golden-hour", "isCustom": false },
{ "category": "camera", "value": "telephoto from below, 400mm", "isCustom": true }
]
}'const { prompt, recommendedModel } = await client.promptHelper.generate({
nodeType: 'generate-image',
originalPrompt: 'a snow leopard on a ridge',
selections: [
{ category: 'lighting', value: 'golden-hour', isCustom: false },
{ category: 'camera', value: 'telephoto from below, 400mm', isCustom: true },
],
})nodaro prompt generate --node-type generate-image \
--original-prompt "a snow leopard on a ridge" \
--selection lighting=golden-hour --selection camera="telephoto from below, 400mm" --json{
"jobId": "9e1a3c5b-7d2f-4b6a-8c4e-2f5d8b1a3c7e",
"prompt": "A snow leopard stands on a rocky ridge at golden hour, low warm sun raking across its spotted coat, shot from below on a 400mm telephoto lens, snow dust drifting in the backlight.",
"recommendedModel": {
"provider": "nano-banana-pro",
"field": "provider",
"label": "Nano Banana Pro",
"reason": "Strong fine detail for fur and snow texture."
}
}recommendedModel は、ウィザードが対象のノードに合うモデルを提案できる場合に含まれます。provider は設定するモデルの id、label はその名前、reason は理由の説明です。モデルが 1 つしかないノードタイプでは、推奨はありません。
1 回の呼び出しでプロンプトを改善する
enhance は、質問を飛ばして、最適化されたプロンプトを直接返します。analyze と同じフィールドを受け付け、selections は使いません。
curl -X POST https://app.nodaro.ai/v1/prompt-helper/wizard \
-H "Authorization: Bearer $NODARO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "action": "enhance", "nodeType": "text-to-video", "prompt": "a paper boat in a rainy street", "duration": 5 }'const { prompt } = await client.promptHelper.enhance({
nodeType: 'generate-image',
prompt: 'a snow leopard',
})
const image = await client.nodes.runAndWait('generate-image', { prompt })PROMPT=$(nodaro prompt enhance --node-type generate-image --prompt "snow leopard" --json | jq -r '.prompt')
nodaro nodes run generate-image --param prompt="$PROMPT" --watchリクエストのフィールド
Prop
Type
サポートされていないか省略された reasoningEffort は、そのモデル自身のデフォルトを使います。Gemini モデルではないモデルに advancedMode を指定すると、400 advanced_mode_unsupported が返されます。使用できる言語モデルとそのティアについては、プロンプト(Prompt)ノードを参照してください。
クレジット
1 回の呼び出しは、言語モデルの呼び出し 1 回分で、llmModel のティアで課金され、呼び出しの開始時にクレジットが確保されます。ガイド付きの流れは、analyze の後に generate と、2 回分の呼び出しになります。新しい質問をリクエストすると、さらに 1 回分かかります。呼び出しが 500 または 502 で失敗した場合、クレジットは返還されます。
MCP から使う
AI アシスタントは、workflows:execute スコープで、analyze_prompt、generate_prompt、enhance_prompt を通じて同じエンドポイントを使います。ツールは同じフィールドを受け付け、Gemini モデルでは advanced_mode、temperature、max_tokens も使えます。MCP ツールリファレンスを参照してください。
エラー
| ステータス | コード | 意味 |
|---|---|---|
400 | validation_error | ボディが無効です。たとえば、不明な action や、selections のない generate です。 |
400 | advanced_mode_unsupported | Gemini モデルではないモデルに advancedMode が送られました。 |
401 | unauthorized | トークンがないか、無効か、取り消されています。 |
402 | insufficient_credits | Nodaro Cloud のみです。アカウントが、呼び出しの料金をまかなえません。 |
500 | llm_error | 言語モデルの呼び出しが失敗しました。クレジットは返還されます。間隔をあけて再試行してください。 |
502 | malformed_response | モデルの回答を使用できませんでした。クレジットは返還されます。 |
503 | provider_unavailable | このインスタンスには、言語モデルが設定されていません。 |
よくある質問
関連ページ
プロンプト
ノード
画像生成
クリエイティブコントロール
MCP ツールリファレンス
最終更新