AIProject / main.py
Soltane777's picture
Update main.py
cce29c9 verified
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"]}