image prompt issues
This commit is contained in:
@@ -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"""
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user