debug: Add comprehensive placeholder resolution logging to workflow executor
- Log placeholder loading (count, sample keys)
- Log key cleaning process (before/after)
- Log sample values (name, age, geschlecht)
- Log template before/after resolution
- Log resolved and unresolved placeholders
- Add .strip() to key cleaning to handle spaces
This will help diagnose why {{ name }}, {{ age }}, {{ geschlecht }} are not resolving in inline templates.
Issue: Part 3 Inline Prompts - placeholder resolution debugging
This commit is contained in:
parent
a4c8b4bd9a
commit
aeb0ee6ad9
|
|
@ -878,14 +878,20 @@ async def load_prompt_template(node: WorkflowNode, context: Dict[str, Any]) -> s
|
||||||
try:
|
try:
|
||||||
# Get all placeholder values from registry
|
# Get all placeholder values from registry
|
||||||
processed_placeholders = get_placeholder_example_values(profile_id)
|
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)
|
# Remove {{ }} from keys (placeholder_resolver returns them with wrappers)
|
||||||
cleaned_placeholders = {
|
cleaned_placeholders = {
|
||||||
key.replace('{{', '').replace('}}', ''): value
|
key.replace('{{', '').replace('}}', '').strip(): value
|
||||||
for key, value in processed_placeholders.items()
|
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)
|
variables.update(cleaned_placeholders)
|
||||||
except Exception as e:
|
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
|
# Load catalog for |d modifier support
|
||||||
try:
|
try:
|
||||||
|
|
@ -894,13 +900,22 @@ async def load_prompt_template(node: WorkflowNode, context: Dict[str, Any]) -> s
|
||||||
catalog = None
|
catalog = None
|
||||||
logger.warning(f"Failed to load placeholder catalog for workflow: {e}")
|
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
|
# Resolve with modern executor
|
||||||
|
debug_info = {}
|
||||||
resolved = resolve_placeholders(
|
resolved = resolve_placeholders(
|
||||||
template=template,
|
template=template,
|
||||||
variables=variables,
|
variables=variables,
|
||||||
|
debug_info=debug_info,
|
||||||
catalog=catalog
|
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
|
return resolved
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user