Merge pull request 'Run image decoding and resizing off the event loop' (#75) from perf/offload-image-processing into main
This commit was merged in pull request #75.
This commit is contained in:
@@ -258,7 +258,9 @@ async def upload_image():
|
||||
content_type = file.content_type or "image/jpeg"
|
||||
|
||||
try:
|
||||
processed_bytes, output_content_type = process_image(file_bytes, content_type)
|
||||
processed_bytes, output_content_type = await asyncio.to_thread(
|
||||
process_image, file_bytes, content_type
|
||||
)
|
||||
except ImageValidationError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
@@ -312,8 +314,8 @@ async def upload_attachment():
|
||||
|
||||
if content_type in IMAGE_TYPES:
|
||||
try:
|
||||
processed_bytes, output_content_type = process_image(
|
||||
file_bytes, content_type
|
||||
processed_bytes, output_content_type = await asyncio.to_thread(
|
||||
process_image, file_bytes, content_type
|
||||
)
|
||||
except Exception as e:
|
||||
return jsonify({"error": f"Could not process image: {e}"}), 400
|
||||
@@ -403,7 +405,7 @@ async def stream_query():
|
||||
if image_key:
|
||||
try:
|
||||
image_bytes, _ = await s3_get_image(image_key)
|
||||
image_block = image_content_block(image_bytes)
|
||||
image_block = await asyncio.to_thread(image_content_block, image_bytes)
|
||||
except Exception as e:
|
||||
logging.error(f"Failed to load image {image_key}: {e}")
|
||||
query_text = f"{query_text or ''}\n\n[An image was sent but could not be loaded.]".strip()
|
||||
|
||||
@@ -327,7 +327,7 @@ async def _process_and_reply(
|
||||
async with httpx.AsyncClient() as client:
|
||||
resp = await client.get(media_url, timeout=30)
|
||||
resp.raise_for_status()
|
||||
image_block = image_content_block(resp.content)
|
||||
image_block = await asyncio.to_thread(image_content_block, resp.content)
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to load iMessage image: {e}")
|
||||
content = f"{content or ''}\n\n[An image was sent but could not be loaded.]".strip()
|
||||
|
||||
Reference in New Issue
Block a user