AIProject / main.py
Soltane777's picture
Update main.py
cce29c9 verified
Raw History Blame Contribute Delete
1.24 kB
from fastapi import FastAPI, UploadFile, File
from fastapi.staticfiles import StaticFiles
from transformers import pipeline
from tika import parser
import os
app = FastAPI()
# Mount static folder for frontend
app.mount("/static", StaticFiles(directory="static"), name="static")
# Define a writable cache directory inside the container
CACHE_DIR = "/app/cache"
os.makedirs(CACHE_DIR, exist_ok=True) # Create the directory if it doesn’t exist
# Load models with custom cache directory
summarizer = pipeline("summarization", model="facebook/bart-large-cnn", cache_dir=CACHE_DIR)
image_captioner = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base", cache_dir=CACHE_DIR)
@app.get("/")
async def root():
return {"message": "Welcome to AI Web App"}
@app.post("/summarize")
async def summarize_document(file: UploadFile = File(...)):
content = parser.from_buffer(await file.read())["content"]
summary = summarizer(content, max_length=130, min_length=30, do_sample=False)
return {"summary": summary[0]["summary_text"]}
@app.post("/caption")
async def caption_image(file: UploadFile = File(...)):
caption = image_captioner(await file.read())
return {"caption": caption[0]["generated_text"]}