in use-cases/rag-pipeline/embedding-models/multimodal-embedding/src/blip2_server.py [0:0]
def generate_image_embeddings():
if request.method == "POST":
try:
if request.is_json:
try:
json_req = request.get_json()
except Exception as e:
return jsonify({"error": f"Invalid JSON payload: {e}"}), 400
if "image_uri" not in json_req:
return jsonify({"error": "No image_uri provided"}), 400
try:
image = download_image_from_gcs(json_req["image_uri"])
except Exception as e:
return jsonify({"error": str(e)}), 400
else:
if "image" not in request.files:
return jsonify({"error": "No image provided"}), 400
try:
image_file = request.files["image"]
image = Image.open(image_file).convert("RGB")
except Exception as e:
return jsonify({"error": f"Error processing image file: {e}"}), 400
except Exception as e:
return jsonify({"error": str(e)}), 400
try:
image_features = get_image_embedding(image)
except Exception as e:
return jsonify({"error": str(e)}), 400
logger.info("Image embeddings generated successfully.")
return jsonify(
{
"image_embeds": image_features.tolist()[0][0],
}
)
else:
return jsonify({"error": "Invalid request method"}), 405