PAI
parent
2712a026ab
commit
7e12ef3738
|
@ -20,4 +20,5 @@ RUN pip install --no-cache-dir -r requirements.txt
|
|||
COPY . .
|
||||
|
||||
# Set the entrypoint
|
||||
CMD ["python", "start_moondream.py"]
|
||||
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "3000"]
|
||||
|
||||
|
|
|
@ -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)})
|
|
@ -1,4 +1,6 @@
|
|||
moondream
|
||||
Pillow
|
||||
python-dotenv
|
||||
|
||||
fastapi
|
||||
uvicorn
|
||||
python-multipart
|
|
@ -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"])
|
Loading…
Reference in New Issue