import { parseMDXContent } from '@/lib/mdx'; import { BASE_URL } from '@/api/constants'; export const dynamic = 'force-dynamic'; export const runtime = 'edge'; export async function GET() { try { const content = `[分析场景核心]: 一位舞者对完美的执念,使她的美丽舞蹈转化为一种自我毁灭的仪式。 ### 第一幕:开端 内景 · 舞蹈室 - 傍晚 夕阳透过窗户,阳光携带着飞舞的尘埃,划出一块金色矩形洒在斑驳的木地板上。墙面苍白、剥落。一整面落地镜映出这空旷房间的寂静。 ELARA(20岁出头),身姿优雅至极,立于光影正中。她赤脚,穿着一件简单的黑色紧身舞衣,随着一段大提琴独奏起舞——旋律哀伤而高昂。 她的身体如流水般线条优雅。一只手臂伸展,手指在空气中描绘出无形的轨迹。她缓缓旋转,像是违抗了重力的引力。在这一刻,她是完美的化身。 但她的双眼,始终盯着镜中的自己,突然微微眯起——一丝自我厌弃的情绪一闪而过那个旋转,不够纯净。不够完美。对她而言。 她打断了舞姿。现在,她的呼吸变得可闻,如利刃般切入大提琴的温柔旋律。 她毫不迟疑地重新起舞。这一次,更快、更狠。舞姿仍美,却变得尖锐,带着绝望的锋芒。 一滴汗水,从她的太阳穴滑落。 她再次旋转,又旋转。一个狂热、残酷的段落。她的脸不再沉静,而是绷紧的面具,咬牙切齿。音乐愈发高亢,但我们所听见的,只有她脚步在木地板上滑出的尖锐声响,以及她粗重、急促的喘息。 镜中的倒影已模糊成一道疯狂的涂抹。她强迫自己再做一个旋转——那种超越极限的最后一圈。 她的脚踝崩溃了。 不是咔嚓断裂的声响,而是一种沉默、恶心的扭曲。Elara 倒在地上,如阳光外的一团残骸,四肢交错,失去光环。 大提琴继续演奏,平静、冷漠。 她喉间发出一声哽咽般的呜咽,是房间中唯一的声音。镜头穿过她起伏的肩膀,聚焦她的脚——足弓紧绷,脚趾青紫,地板上划出一丝血痕。 ### 导演与表演附录导演风格解码】 • 核心视觉基调: 高反差明暗对比,采用单一自然光源(窗户)。随着角色状态的恶化,色调从温暖金色逐渐转为冷峻的蓝灰。 • 关键镜头处理建议: 开始用宽阔流畅的镜头呼应舞者的优雅;当其内心破裂时,剪切到突兀的特写镜头:颤抖的大腿肌肉、颈侧汗珠、扭曲的表情与模糊的镜中倒影。最后一个镜头采用固定机位,锁定她瘫倒的身体,强化突然静止的冲击感。她的舞步原本是以光影为中心的循环,她的倒地打破了这一循环,使她落入阴影。 ### 核心表演关键 • 角色肢体表现: 表演需呈现双重性——外在看似毫不费力的优雅与内在痛苦的微妙细节同在。崩溃时不应夸张,而应如过度拉紧的身体对重力的安静屈服。 • 潜台词驱动: 这是与"无形评审"——镜中自己——之间的战争。每一个动作都是抗议,每一个旋转是一种恳求,每一次喘息都是诅咒。核心动机是:"我要强迫这个不完美的身体创造一个完美的瞬间,即使这将摧毁我。" ### 当代表达的连接 这个故事呼应了当代数字时代"精心营造的完美主义"现象,在理想化的自我形象背后,隐藏着焦虑与倦怠的真实生活。 `; console.log('开始解析 MDX 内容...'); const chunks = await parseMDXContent(content); console.log('解析完成,获得块数:', chunks?.length); if (!chunks || chunks.length === 0) { console.error('没有生成有效的内容块'); return new Response( JSON.stringify({ error: '内容解析失败' }), { status: 500, headers: { 'Content-Type': 'application/json' } } ); } // 创建一个可写流来处理数据 const stream = new TransformStream(); const writer = stream.writable.getWriter(); const encoder = new TextEncoder(); // 异步处理数据流 (async () => { try { for (const chunk of chunks) { const data = encoder.encode(JSON.stringify(chunk) + '\n'); await writer.write(data); } } catch (error) { console.error('写入流时出错:', error); } finally { await writer.close(); } })(); return new Response(stream.readable, { headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache, no-transform', 'Connection': 'keep-alive', }, }); } catch (error) { console.error('API 路由处理出错:', error); return new Response( JSON.stringify({ error: '服务器处理请求时出错', details: error instanceof Error ? error.message : '未知错误' }), { status: 500, headers: { 'Content-Type': 'application/json' } } ); } }