whatsthispdf07 / app /main.py
mitulagr2's picture
fix
453bbe9
raw
history blame
1.44 kB
import os
import shutil
import tempfile
from tempfile import NamedTemporaryFile
from pathlib import Path
from fastapi import FastAPI, UploadFile
from fastapi.middleware import Middleware
from fastapi.middleware.cors import CORSMiddleware
from .rag import ChatPDF
middleware = [
Middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=['*'],
allow_headers=['*']
)
]
app = FastAPI(middleware=middleware)
session_assistant = ChatPDF()
session_messages = []
@app.get("/query")
def process_input(text: str):
if text and len(text.strip()) > 0:
text = text.strip()
agent_text = session_assistant.ask(text)
session_messages.append((text, True))
session_messages.append((agent_text, False))
return agent_text
@app.post("/upload")
def upload(files: list[UploadFile]):
session_assistant.clear()
session_messages = []
files_dir = os.path.expanduser("~/wtp_be_files/")
try:
os.makedirs(files_dir)
for file in files:
try:
file.file.seek(0)
with Path(files_dir).open("wb") as destination:
shutil.copyfileobj(file.file, destination)
finally:
file.file.close()
finally:
session_assistant.ingest(files_dir)
shutil.rmtree(files_dir)
return "Files inserted!"
@app.get("/")
def ping():
return "Pong!"