ChenyuRabbitLove's picture
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"])
@router.post("/generate", response_model=ImageGenerationResponse)
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",
)