master
Kar 2025-04-21 16:58:51 +05:30
parent 2712a026ab
commit 7e12ef3738
4 changed files with 38 additions and 22 deletions

View File

@ -20,4 +20,5 @@ RUN pip install --no-cache-dir -r requirements.txt
COPY . . COPY . .
# Set the entrypoint # Set the entrypoint
CMD ["python", "start_moondream.py"] CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "3000"]

33
app.py Normal file
View File

@ -0,0 +1,33 @@
import os
from dotenv import load_dotenv
from fastapi import FastAPI, File, UploadFile, Form
from fastapi.responses import JSONResponse
from PIL import Image
import moondream as md
import io
# Load environment variables
load_dotenv()
api_key = os.getenv("MOON_DREAM_KEY")
# Initialize Moondream model
model = md.vl(api_key=api_key)
# FastAPI app
app = FastAPI()
@app.post("/caption")
async def generate_caption(
image: UploadFile = File(...),
length: str = Form("short")
):
try:
# Read the uploaded image
image_bytes = await image.read()
img = Image.open(io.BytesIO(image_bytes))
# Generate caption
response = model.caption(img, length=length)
return JSONResponse(content={"caption": response["caption"]})
except Exception as e:
return JSONResponse(status_code=500, content={"error": str(e)})

View File

@ -1,4 +1,6 @@
moondream moondream
Pillow Pillow
python-dotenv python-dotenv
fastapi
uvicorn
python-multipart

View File

@ -1,20 +0,0 @@
import os
from dotenv import load_dotenv
import moondream as md
from PIL import Image
# Load .env
load_dotenv()
# Get key from env
api_key = os.getenv("MOON_DREAM_KEY")
# Use Moondream cloud model
model = md.vl(api_key=api_key)
# Load image
image = Image.open("nat.jpg")
# Generate caption
caption_response = model.caption(image, length="short")
print(caption_response["caption"])