AI functins complete

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-26 20:55:03 +00:00
parent 94a8aee0e2
commit 9b9352b9d2
4 changed files with 68 additions and 23 deletions

View File

@@ -175,10 +175,18 @@ class GenerateContentFunction(BaseAIFunction):
# JSON response with structured fields
content_html = parsed.get('content', '')
title = parsed.get('title') or task.title
meta_title = parsed.get('meta_title') or parsed.get('seo_title') or title
meta_description = parsed.get('meta_description') or parsed.get('seo_description')
primary_keyword = parsed.get('primary_keyword') or parsed.get('focus_keyword')
secondary_keywords = parsed.get('secondary_keywords') or parsed.get('keywords', [])
else:
# Plain text response
content_html = str(parsed)
title = task.title
meta_title = title
meta_description = None
primary_keyword = None
secondary_keywords = []
# Calculate word count
word_count = 0
@@ -192,6 +200,12 @@ class GenerateContentFunction(BaseAIFunction):
title=title,
content_html=content_html or '',
word_count=word_count,
# SEO fields
meta_title=meta_title,
meta_description=meta_description,
primary_keyword=primary_keyword,
secondary_keywords=secondary_keywords if isinstance(secondary_keywords, list) else [],
# Structure
cluster=task.cluster,
content_type=task.content_type,
content_structure=task.content_structure,

View File

@@ -174,6 +174,13 @@ class Content(SiteSectorBaseModel):
default=0,
help_text="Actual word count of content (calculated from HTML)"
)
# SEO fields
meta_title = models.CharField(max_length=255, blank=True, null=True, help_text="SEO meta title")
meta_description = models.TextField(blank=True, null=True, help_text="SEO meta description")
primary_keyword = models.CharField(max_length=255, blank=True, null=True, help_text="Primary SEO keyword")
secondary_keywords = models.JSONField(default=list, blank=True, help_text="Secondary SEO keywords")
cluster = models.ForeignKey(
'planner.Clusters',
on_delete=models.SET_NULL,

View File

@@ -163,6 +163,10 @@ class ContentSerializer(serializers.ModelSerializer):
'id',
'title',
'content_html',
'meta_title',
'meta_description',
'primary_keyword',
'secondary_keywords',
'cluster_id',
'cluster_name',
'content_type',