s
This commit is contained in:
@@ -184,7 +184,13 @@ class GenerateContentFunction(BaseAIFunction):
|
|||||||
# Extract tags and categories from AI response
|
# Extract tags and categories from AI response
|
||||||
tags_from_response = parsed.get('tags', [])
|
tags_from_response = parsed.get('tags', [])
|
||||||
categories_from_response = parsed.get('categories', [])
|
categories_from_response = parsed.get('categories', [])
|
||||||
logger.info(f"Extracted from AI response - Tags: {tags_from_response}, Categories: {categories_from_response}")
|
|
||||||
|
# DEBUG: Log the full parsed response to see what we're getting
|
||||||
|
logger.info(f"===== GENERATE CONTENT DEBUG =====")
|
||||||
|
logger.info(f"Full parsed response keys: {list(parsed.keys())}")
|
||||||
|
logger.info(f"Tags from response (type: {type(tags_from_response)}): {tags_from_response}")
|
||||||
|
logger.info(f"Categories from response (type: {type(categories_from_response)}): {categories_from_response}")
|
||||||
|
logger.info(f"==================================")
|
||||||
else:
|
else:
|
||||||
# Plain text response
|
# Plain text response
|
||||||
content_html = str(parsed)
|
content_html = str(parsed)
|
||||||
@@ -227,7 +233,7 @@ class GenerateContentFunction(BaseAIFunction):
|
|||||||
)
|
)
|
||||||
|
|
||||||
logger.info(f"Created content record ID: {content_record.id}")
|
logger.info(f"Created content record ID: {content_record.id}")
|
||||||
logger.info(f"Processing {len(tags_from_response) if tags_from_response else 0} tags and {len(categories_from_response) if categories_from_response else 0} categories")
|
logger.info(f"Processing taxonomies - Tags: {len(tags_from_response) if tags_from_response else 0}, Categories: {len(categories_from_response) if categories_from_response else 0}")
|
||||||
|
|
||||||
# Link taxonomy terms from task if available
|
# Link taxonomy terms from task if available
|
||||||
if task.taxonomy_term:
|
if task.taxonomy_term:
|
||||||
@@ -235,14 +241,17 @@ class GenerateContentFunction(BaseAIFunction):
|
|||||||
logger.info(f"Added task taxonomy term: {task.taxonomy_term.name}")
|
logger.info(f"Added task taxonomy term: {task.taxonomy_term.name}")
|
||||||
|
|
||||||
# Process tags from AI response
|
# Process tags from AI response
|
||||||
|
logger.info(f"Starting tag processing: {tags_from_response}")
|
||||||
if tags_from_response and isinstance(tags_from_response, list):
|
if tags_from_response and isinstance(tags_from_response, list):
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
for tag_name in tags_from_response:
|
for tag_name in tags_from_response:
|
||||||
|
logger.info(f"Processing tag: '{tag_name}' (type: {type(tag_name)})")
|
||||||
if tag_name and isinstance(tag_name, str):
|
if tag_name and isinstance(tag_name, str):
|
||||||
tag_name = tag_name.strip()
|
tag_name = tag_name.strip()
|
||||||
if tag_name:
|
if tag_name:
|
||||||
try:
|
try:
|
||||||
tag_slug = slugify(tag_name)
|
tag_slug = slugify(tag_name)
|
||||||
|
logger.info(f"Creating/finding tag: name='{tag_name}', slug='{tag_slug}'")
|
||||||
# Get or create tag taxonomy term using site + slug + type for uniqueness
|
# Get or create tag taxonomy term using site + slug + type for uniqueness
|
||||||
tag_obj, created = ContentTaxonomy.objects.get_or_create(
|
tag_obj, created = ContentTaxonomy.objects.get_or_create(
|
||||||
site=task.site,
|
site=task.site,
|
||||||
@@ -259,19 +268,26 @@ class GenerateContentFunction(BaseAIFunction):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
content_record.taxonomy_terms.add(tag_obj)
|
content_record.taxonomy_terms.add(tag_obj)
|
||||||
logger.info(f"{'Created' if created else 'Found'} and linked tag: {tag_name} (ID: {tag_obj.id}, Slug: {tag_slug})")
|
logger.info(f"✅ {'Created' if created else 'Found'} and linked tag: {tag_name} (ID: {tag_obj.id}, Slug: {tag_slug})")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Failed to add tag '{tag_name}': {e}", exc_info=True)
|
logger.error(f"❌ Failed to add tag '{tag_name}': {e}", exc_info=True)
|
||||||
|
else:
|
||||||
|
logger.warning(f"Skipping invalid tag: '{tag_name}' (type: {type(tag_name)})")
|
||||||
|
else:
|
||||||
|
logger.info(f"No tags to process or tags_from_response is not a list: {type(tags_from_response)}")
|
||||||
|
|
||||||
# Process categories from AI response
|
# Process categories from AI response
|
||||||
|
logger.info(f"Starting category processing: {categories_from_response}")
|
||||||
if categories_from_response and isinstance(categories_from_response, list):
|
if categories_from_response and isinstance(categories_from_response, list):
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
for category_name in categories_from_response:
|
for category_name in categories_from_response:
|
||||||
|
logger.info(f"Processing category: '{category_name}' (type: {type(category_name)})")
|
||||||
if category_name and isinstance(category_name, str):
|
if category_name and isinstance(category_name, str):
|
||||||
category_name = category_name.strip()
|
category_name = category_name.strip()
|
||||||
if category_name:
|
if category_name:
|
||||||
try:
|
try:
|
||||||
category_slug = slugify(category_name)
|
category_slug = slugify(category_name)
|
||||||
|
logger.info(f"Creating/finding category: name='{category_name}', slug='{category_slug}'")
|
||||||
# Get or create category taxonomy term using site + slug + type for uniqueness
|
# Get or create category taxonomy term using site + slug + type for uniqueness
|
||||||
category_obj, created = ContentTaxonomy.objects.get_or_create(
|
category_obj, created = ContentTaxonomy.objects.get_or_create(
|
||||||
site=task.site,
|
site=task.site,
|
||||||
@@ -288,9 +304,13 @@ class GenerateContentFunction(BaseAIFunction):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
content_record.taxonomy_terms.add(category_obj)
|
content_record.taxonomy_terms.add(category_obj)
|
||||||
logger.info(f"{'Created' if created else 'Found'} and linked category: {category_name} (ID: {category_obj.id}, Slug: {category_slug})")
|
logger.info(f"✅ {'Created' if created else 'Found'} and linked category: {category_name} (ID: {category_obj.id}, Slug: {category_slug})")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Failed to add category '{category_name}': {e}", exc_info=True)
|
logger.error(f"❌ Failed to add category '{category_name}': {e}", exc_info=True)
|
||||||
|
else:
|
||||||
|
logger.warning(f"Skipping invalid category: '{category_name}' (type: {type(category_name)})")
|
||||||
|
else:
|
||||||
|
logger.info(f"No categories to process or categories_from_response is not a list: {type(categories_from_response)}")
|
||||||
|
|
||||||
# STAGE 3: Update task status to completed
|
# STAGE 3: Update task status to completed
|
||||||
task.status = 'completed'
|
task.status = 'completed'
|
||||||
|
|||||||
Reference in New Issue
Block a user