medgemma / app.py
keval-fst's picture
Create app.py
3afe1f0 verified
raw
history blame
997 Bytes
from fastapi import FastAPI, File, UploadFile, Form
from fastapi.responses import JSONResponse
from transformers import pipeline
from io import BytesIO
from PIL import Image
app = FastAPI()
# Load pipeline once
pipe = pipeline("image-text-to-text", model="google/medgemma-27b-it")
@app.get("/")
def root():
return {"message": "MedGemma Image-to-Text API running"}
@app.post("/analyze/")
async def analyze_image(prompt: str = Form(...), file: UploadFile = File(...)):
try:
image_data = await file.read()
image = Image.open(BytesIO(image_data)).convert("RGB")
response = pipe([
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": prompt}
]
}
])
return {"result": response[0]['generated_text']}
except Exception as e:
return JSONResponse(status_code=500, content={"error": str(e)})