image max count

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-17 13:06:42 +00:00
parent 1993d45f32
commit 71fe687681
5 changed files with 43 additions and 68 deletions

View File

@@ -74,11 +74,11 @@ class AIEngine:
elif function_name == 'generate_image_prompts':
# Extract max_images from data if available
if isinstance(data, list) and len(data) > 0:
max_images = data[0].get('max_images', 2)
max_images = data[0].get('max_images')
total_images = 1 + max_images # 1 featured + max_images in-article
return f"Mapping Content for {total_images} Image Prompts"
elif isinstance(data, dict) and 'max_images' in data:
max_images = data.get('max_images', 2)
max_images = data.get('max_images')
total_images = 1 + max_images
return f"Mapping Content for {total_images} Image Prompts"
return f"Mapping Content for Image Prompts"

View File

@@ -93,7 +93,7 @@ class GenerateImagePromptsFunction(BaseAIFunction):
data = data[0]
extracted = data['extracted']
max_images = data.get('max_images', 2)
max_images = data.get('max_images')
# Format content for prompt
content_text = self._format_content_for_prompt(extracted)
@@ -146,7 +146,7 @@ class GenerateImagePromptsFunction(BaseAIFunction):
content = original_data['content']
extracted = original_data['extracted']
max_images = original_data.get('max_images', 2)
max_images = original_data.get('max_images')
prompts_created = 0
@@ -200,6 +200,14 @@ class GenerateImagePromptsFunction(BaseAIFunction):
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

View File

@@ -67,19 +67,17 @@ class GenerateImagesFunction(BaseAIFunction):
if not tasks:
raise ValueError("No tasks found")
# Get image generation settings
image_settings = {}
if account:
try:
from igny8_core.modules.system.models import IntegrationSettings
integration = IntegrationSettings.objects.get(
account=account,
integration_type='image_generation',
is_active=True
)
image_settings = integration.config or {}
except Exception:
pass
# 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
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')
@@ -94,7 +92,7 @@ class GenerateImagesFunction(BaseAIFunction):
'provider': provider,
'model': model,
'image_type': image_settings.get('image_type', 'realistic'),
'max_in_article_images': int(image_settings.get('max_in_article_images', 2)),
'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),
}
@@ -102,7 +100,7 @@ class GenerateImagesFunction(BaseAIFunction):
def build_prompt(self, data: Dict, account=None) -> Dict:
"""Extract image prompts from task content"""
task = data.get('task')
max_images = data.get('max_in_article_images', 2)
max_images = data.get('max_in_article_images')
if not task or not task.content:
raise ValueError("Task has no content")

View File

@@ -182,32 +182,21 @@ def process_image_generation_queue(self, image_ids: list, account_id: int = None
results = []
# Get image generation settings from IntegrationSettings
# Normal users use system account settings (aws-admin) via fallback
logger.info("[process_image_generation_queue] Step 1: Loading image generation settings")
# Always use system account settings (aws-admin) for global configuration
logger.info("[process_image_generation_queue] Step 1: Loading image generation settings from aws-admin")
from igny8_core.auth.models import Account
try:
system_account = Account.objects.get(slug='aws-admin')
image_settings = IntegrationSettings.objects.get(
account=account,
account=system_account,
integration_type='image_generation',
is_active=True
)
logger.info(f"[process_image_generation_queue] Image generation settings found for account {account.id}")
logger.info(f"[process_image_generation_queue] Using system account (aws-admin) settings")
config = image_settings.config or {}
except IntegrationSettings.DoesNotExist:
# Fallback to system account (aws-admin) settings
logger.info(f"[process_image_generation_queue] No settings for account {account.id}, falling back to system account")
from igny8_core.auth.models import Account
try:
system_account = Account.objects.get(slug='aws-admin')
image_settings = IntegrationSettings.objects.get(
account=system_account,
integration_type='image_generation',
is_active=True
)
logger.info(f"[process_image_generation_queue] Using system account (aws-admin) settings")
config = image_settings.config or {}
except (Account.DoesNotExist, IntegrationSettings.DoesNotExist):
logger.error("[process_image_generation_queue] ERROR: Image generation settings not found in system account either")
return {'success': False, 'error': 'Image generation settings not found'}
except (Account.DoesNotExist, IntegrationSettings.DoesNotExist):
logger.error("[process_image_generation_queue] ERROR: Image generation settings not found in aws-admin account")
return {'success': False, 'error': 'Image generation settings not found in aws-admin account'}
except Exception as e:
logger.error(f"[process_image_generation_queue] ERROR loading image generation settings: {e}", exc_info=True)
return {'success': False, 'error': f'Error loading image generation settings: {str(e)}'}