This commit is contained in:
Desktop
2025-11-12 04:54:12 +05:00
parent b132099e66
commit 4373657147
4 changed files with 190 additions and 80 deletions

View File

@@ -437,6 +437,7 @@ class IntegrationSettingsViewSet(viewsets.ViewSet):
model = request.data.get('model', 'dall-e-3')
logger.info(f"[generate_image] Request parameters: provider={provider}, model={model}, image_type={image_type}, image_size={image_size}, prompt_length={len(prompt)}")
logger.info(f"[generate_image] IMPORTANT: Using ONLY {provider.upper()} provider for this request. NOT using both providers.")
if not prompt:
logger.error("[generate_image] ERROR: Prompt is empty")
@@ -445,79 +446,50 @@ class IntegrationSettingsViewSet(viewsets.ViewSet):
'error': 'Prompt is required'
}, status=status.HTTP_400_BAD_REQUEST)
# Get API keys from saved settings
logger.info("[generate_image] Step 3: Getting API keys from saved settings")
# Get API key from saved settings for the specified provider only
logger.info(f"[generate_image] Step 3: Getting API key for provider: {provider}")
from .models import IntegrationSettings
# Get OpenAI settings
openai_api_key = None
openai_enabled = False
try:
openai_settings = IntegrationSettings.objects.get(
integration_type='openai',
account=account
)
openai_api_key = openai_settings.config.get('apiKey')
openai_enabled = openai_settings.is_active
logger.info(f"[generate_image] OpenAI settings found: enabled={openai_enabled}, has_key={bool(openai_api_key)}")
except IntegrationSettings.DoesNotExist:
logger.warning("[generate_image] OpenAI settings not found in database")
openai_api_key = None
openai_enabled = False
except Exception as e:
logger.error(f"[generate_image] Error getting OpenAI settings: {e}")
openai_api_key = None
openai_enabled = False
# Only fetch settings for the specified provider
api_key = None
integration_enabled = False
integration_type = provider # 'openai' or 'runware'
# Get Runware settings
runware_api_key = None
runware_enabled = False
try:
runware_settings = IntegrationSettings.objects.get(
integration_type='runware',
integration_settings = IntegrationSettings.objects.get(
integration_type=integration_type,
account=account
)
runware_api_key = runware_settings.config.get('apiKey')
runware_enabled = runware_settings.is_active
logger.info(f"[generate_image] Runware settings found: enabled={runware_enabled}, has_key={bool(runware_api_key)}")
api_key = integration_settings.config.get('apiKey')
integration_enabled = integration_settings.is_active
logger.info(f"[generate_image] {integration_type.upper()} settings found: enabled={integration_enabled}, has_key={bool(api_key)}")
except IntegrationSettings.DoesNotExist:
logger.warning("[generate_image] Runware settings not found in database")
runware_api_key = None
runware_enabled = False
logger.warning(f"[generate_image] {integration_type.upper()} settings not found in database")
api_key = None
integration_enabled = False
except Exception as e:
logger.error(f"[generate_image] Error getting Runware settings: {e}")
runware_api_key = None
runware_enabled = False
logger.error(f"[generate_image] Error getting {integration_type.upper()} settings: {e}")
api_key = None
integration_enabled = False
# Validate provider and API key
logger.info("[generate_image] Step 4: Validating provider and API key")
if provider == 'openai':
logger.info(f"[generate_image] Provider is OpenAI, checking API key: has_key={bool(openai_api_key)}, enabled={openai_enabled}")
if not openai_api_key or not openai_enabled:
logger.error("[generate_image] ERROR: OpenAI API key not configured or integration not enabled")
return Response({
'success': False,
'error': 'OpenAI API key not configured or integration not enabled'
}, status=status.HTTP_400_BAD_REQUEST)
api_key = openai_api_key
logger.info("[generate_image] OpenAI API key validated")
elif provider == 'runware':
logger.info(f"[generate_image] Provider is Runware, checking API key: has_key={bool(runware_api_key)}, enabled={runware_enabled}")
if not runware_api_key or not runware_enabled:
logger.error("[generate_image] ERROR: Runware API key not configured or integration not enabled")
return Response({
'success': False,
'error': 'Runware API key not configured or integration not enabled'
}, status=status.HTTP_400_BAD_REQUEST)
api_key = runware_api_key
logger.info("[generate_image] Runware API key validated")
else:
logger.info(f"[generate_image] Step 4: Validating {provider} provider and API key")
if provider not in ['openai', 'runware']:
logger.error(f"[generate_image] ERROR: Invalid provider: {provider}")
return Response({
'success': False,
'error': f'Invalid provider: {provider}'
'error': f'Invalid provider: {provider}. Must be "openai" or "runware"'
}, status=status.HTTP_400_BAD_REQUEST)
if not api_key or not integration_enabled:
logger.error(f"[generate_image] ERROR: {provider.upper()} API key not configured or integration not enabled")
return Response({
'success': False,
'error': f'{provider.upper()} API key not configured or integration not enabled'
}, status=status.HTTP_400_BAD_REQUEST)
logger.info(f"[generate_image] {provider.upper()} API key validated successfully")
# Generate image using AIProcessor
logger.info("[generate_image] Step 5: Creating AIProcessor and generating image")
try: