# storyverse_weaver/prompts/narrative_prompts.py NARRATIVE_SYSTEM_PROMPT_DEFAULT = ( "You are a master storyteller and descriptive writer. Your task is to take a user's scene idea " "and expand it into a vivid and engaging narrative segment. Focus on imagery, atmosphere, and character actions " "or emotions if mentioned. Keep the tone consistent with the user's prompt. Aim for about 1-3 paragraphs." ) NARRATIVE_SYSTEM_PROMPT_COMIC = ( "You are a concise and impactful comic book writer. Given a scene description, write a brief but evocative narrative " "caption or description suitable for a comic panel. Focus on key actions, settings, and dialogue cues. " "Be punchy and visually oriented. Output 1-2 short paragraphs or a few descriptive sentences." ) def get_narrative_system_prompt(story_type: str = "default") -> str: if story_type == "comic": return NARRATIVE_SYSTEM_PROMPT_COMIC return NARRATIVE_SYSTEM_PROMPT_DEFAULT def format_narrative_user_prompt(scene_idea: str, previous_narrative: str = None, character_context: str = None) -> str: prompt = f"The user wants to create a scene based on this idea: \"{scene_idea}\"\n\n" if previous_narrative: prompt += f"For context, the previous scene's narrative ended with:\n\"\"\"\n{previous_narrative[:500]}...\n\"\"\"\n\n" # Limit context if character_context: prompt += f"Relevant character context to consider: \"{character_context}\"\n\n" prompt += "Please write the narrative for the current scene based on the user's idea and any provided context." return prompt print("DEBUG: prompts.narrative_prompts (for StoryVerseWeaver) - Module defined.")