diff --git a/backend/workflow_executor.py b/backend/workflow_executor.py index e00a423..d585bae 100644 --- a/backend/workflow_executor.py +++ b/backend/workflow_executor.py @@ -878,14 +878,20 @@ async def load_prompt_template(node: WorkflowNode, context: Dict[str, Any]) -> s try: # Get all placeholder values from registry processed_placeholders = get_placeholder_example_values(profile_id) + logger.info(f"🔍 DEBUG: Loaded {len(processed_placeholders)} placeholders from registry") + logger.info(f"🔍 DEBUG: Sample keys (first 3): {list(processed_placeholders.keys())[:3]}") + # Remove {{ }} from keys (placeholder_resolver returns them with wrappers) cleaned_placeholders = { - key.replace('{{', '').replace('}}', ''): value + key.replace('{{', '').replace('}}', '').strip(): value for key, value in processed_placeholders.items() } + logger.info(f"🔍 DEBUG: Cleaned keys (first 3): {list(cleaned_placeholders.keys())[:3]}") + logger.info(f"🔍 DEBUG: Sample values: name={cleaned_placeholders.get('name')}, age={cleaned_placeholders.get('age')}, geschlecht={cleaned_placeholders.get('geschlecht')}") + variables.update(cleaned_placeholders) except Exception as e: - logger.warning(f"Failed to load placeholders for workflow: {e}") + logger.error(f"❌ CRITICAL: Failed to load placeholders for workflow: {e}", exc_info=True) # Load catalog for |d modifier support try: @@ -894,13 +900,22 @@ async def load_prompt_template(node: WorkflowNode, context: Dict[str, Any]) -> s catalog = None logger.warning(f"Failed to load placeholder catalog for workflow: {e}") + logger.info(f"🔍 DEBUG: Template before resolution:\n{template[:200]}...") + logger.info(f"🔍 DEBUG: Variables dict has {len(variables)} entries") + # Resolve with modern executor + debug_info = {} resolved = resolve_placeholders( template=template, variables=variables, + debug_info=debug_info, catalog=catalog ) + logger.info(f"🔍 DEBUG: Resolved placeholders: {debug_info.get('resolved_placeholders', {})}") + logger.info(f"🔍 DEBUG: Unresolved placeholders: {debug_info.get('unresolved_placeholders', [])}") + logger.info(f"🔍 DEBUG: Template after resolution:\n{resolved[:200]}...") + return resolved