Spaces:
Sleeping
Sleeping

refactor: update image generation response structure to return base64 images, simplify Dockerfile permissions, and clean up unused code in image service
c74caed
from fastapi import APIRouter, HTTPException, status | |
import logging | |
from ....schemas.image import ImageGenerationRequest, ImageGenerationResponse | |
from ....services.image_service import image_service | |
logger = logging.getLogger(__name__) | |
router = APIRouter(prefix="/images", tags=["images"]) | |
async def generate_image(request: ImageGenerationRequest): | |
""" | |
Generate an image using OpenAI DALL-E, optionally with a reference image | |
Returns base64 encoded image data directly | |
""" | |
try: | |
result = await image_service.generate_image( | |
prompt=request.prompt, | |
size=request.size, | |
n=request.n, | |
model=request.model, | |
reference_image=request.reference_image, | |
) | |
if not result["success"]: | |
raise HTTPException( | |
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
detail=result["message"], | |
) | |
return ImageGenerationResponse( | |
success=True, | |
message=result["message"], | |
images=result.get("images", []), | |
count=result.get("count", 0), | |
) | |
except HTTPException: | |
raise | |
except Exception as e: | |
logger.error(f"Unexpected error in generate_image: {str(e)}") | |
raise HTTPException( | |
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
detail="An unexpected error occurred while generating the image", | |
) | |