agentic-os/newspaper-extractor/backend/app/main.py

37 lines
963 B
Python

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from app.api import routes_upload, routes_search
from app.db.models import Base
from app.db.session import engine
from sqlalchemy import text
with engine.begin() as conn:
conn.execute(text("CREATE EXTENSION IF NOT EXISTS vector;"))
Base.metadata.create_all(bind=engine)
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI(title="Newspaper Extractor API")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allow all origins for development
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Serve uploaded images
import os
os.makedirs("/data/storage", exist_ok=True)
app.mount("/api/images", StaticFiles(directory="/data/storage"), name="images")
app.include_router(routes_upload.router)
app.include_router(routes_search.router)
@app.get("/")
def root():
return {"message": "Newspaper Extractor API is running."}