image prompt issues

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-25 01:17:41 +00:00
parent 64e76f5436
commit abeede5f04
7 changed files with 150 additions and 45 deletions

View File

@@ -99,6 +99,7 @@ class GenerateImagePromptsFunction(BaseAIFunction):
content_text = self._format_content_for_prompt(extracted)
# Get prompt from PromptRegistry - same as other functions
# Provide multiple context key variations for compatibility with different prompt templates
prompt = PromptRegistry.get_prompt(
function_name='generate_image_prompts',
account=account,
@@ -106,6 +107,11 @@ class GenerateImagePromptsFunction(BaseAIFunction):
'title': extracted['title'],
'content': content_text,
'max_images': max_images,
'count': max_images, # Alias for backward compatibility
'TITLE': extracted['title'], # Uppercase variants
'CONTENT': content_text,
'MAX_IMAGES': max_images,
'COUNT': max_images,
}
)
@@ -218,28 +224,17 @@ class GenerateImagePromptsFunction(BaseAIFunction):
# Helper methods
def _get_max_in_article_images(self, account) -> int:
"""Get max_in_article_images from AWS account IntegrationSettings only"""
from igny8_core.modules.system.models import IntegrationSettings
from igny8_core.auth.models import Account
"""Get max_in_article_images from global settings with optional account override"""
from igny8_core.ai.settings import get_image_generation_config
# Only use system account (aws-admin) settings
system_account = Account.objects.get(slug='aws-admin')
settings = IntegrationSettings.objects.get(
account=system_account,
integration_type='image_generation',
is_active=True
)
max_images = settings.config.get('max_in_article_images')
if max_images is None:
raise ValueError(
"max_in_article_images not configured in aws-admin image_generation settings. "
"Please set this value in the Integration Settings page."
)
max_images = int(max_images)
logger.info(f"Using max_in_article_images={max_images} from aws-admin account")
return max_images
try:
config = get_image_generation_config(account)
max_images = config.get('max_in_article_images', 2) # Default to 2 if not set
logger.info(f"Using max_in_article_images={max_images} for account {account.id}")
return max_images
except Exception as e:
logger.warning(f"Failed to get max_in_article_images from settings: {e}. Using default of 2")
return 2 # Fallback default
def _extract_content_elements(self, content: Content, max_images: int) -> Dict:
"""Extract title, intro paragraphs, and H2 headings from content HTML"""

View File

@@ -67,34 +67,23 @@ class GenerateImagesFunction(BaseAIFunction):
if not tasks:
raise ValueError("No tasks found")
# Get image generation settings from aws-admin account only (global settings)
from igny8_core.modules.system.models import IntegrationSettings
from igny8_core.auth.models import Account
# Get image generation settings from global settings with optional account override
from igny8_core.ai.settings import get_image_generation_config
system_account = Account.objects.get(slug='aws-admin')
integration = IntegrationSettings.objects.get(
account=system_account,
integration_type='image_generation',
is_active=True
)
image_settings = integration.config or {}
# Extract settings with defaults
provider = image_settings.get('provider') or image_settings.get('service', 'openai')
if provider == 'runware':
model = image_settings.get('model') or image_settings.get('runwareModel', 'runware:97@1')
else:
model = image_settings.get('model', 'dall-e-3')
image_config = get_image_generation_config(account)
provider = image_config.get('provider', 'openai')
model = image_config.get('model', 'dall-e-3')
max_in_article_images = image_config.get('max_in_article_images', 2)
return {
'tasks': tasks,
'account': account,
'provider': provider,
'model': model,
'image_type': image_settings.get('image_type', 'realistic'),
'max_in_article_images': int(image_settings.get('max_in_article_images')),
'desktop_enabled': image_settings.get('desktop_enabled', True),
'mobile_enabled': image_settings.get('mobile_enabled', True),
'image_type': image_config.get('style', 'realistic'),
'max_in_article_images': max_in_article_images,
'desktop_enabled': True, # Always enabled
'mobile_enabled': True, # Always enabled
}
def build_prompt(self, data: Dict, account=None) -> Dict: