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