diff --git a/app/(chat)/api/chat/route.ts b/app/(chat)/api/chat/route.ts index 34b3bf5..f620d8f 100644 --- a/app/(chat)/api/chat/route.ts +++ b/app/(chat)/api/chat/route.ts @@ -150,13 +150,26 @@ function applyOptimizedPromptToLatestUserMessage( const normalizedOriginal = hiddenPromptPrefix && originalText.startsWith(hiddenPromptPrefix) ? originalText.slice(hiddenPromptPrefix.length).trim() : originalText; - const shouldAppendOriginal = - normalizedOriginal && - normalizedOriginal !== prompt && - !prompt.includes(normalizedOriginal); - const finalPrompt = shouldAppendOriginal - ? `${hiddenPromptPrefix}${prompt}\n\n用户原始需求:${normalizedOriginal}`.trim() + const hasOriginalDemand = normalizedOriginal.length > 0; + const hasOriginalInOptimized = + hasOriginalDemand && + (prompt.includes(normalizedOriginal) || normalizedOriginal.includes(prompt)); + const finalPrompt = hasOriginalDemand && !hasOriginalInOptimized + ? [ + hiddenPromptPrefix.trim(), + `【核心目标(必须优先满足)】${normalizedOriginal}`, + `【执行优化细节】${prompt}`, + ] + .filter(Boolean) + .join("\n\n") + .trim() : `${hiddenPromptPrefix}${prompt}`.trim(); + console.log("[Prompt Merge] Final image prompt prepared:", { + original: normalizedOriginal.substring(0, 120), + optimized: prompt.substring(0, 120), + merged: finalPrompt.substring(0, 180), + forcePreserveOriginal: hasOriginalDemand && !hasOriginalInOptimized, + }); if (textPart) { textPart.text = finalPrompt;