Spaces:
Runtime error
Runtime error
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 = [] | |
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 | |
def upload(files: list[UploadFile]): | |
session_assistant.clear() | |
session_messages = [] | |
for file in files: | |
path = f"files/{file.filename}" | |
try: | |
suffix = Path(file.filename).suffix | |
with NamedTemporaryFile(delete=False, suffix=suffix) as tmp: | |
shutil.copyfileobj(file.file, tmp) | |
tmp_path = Path(tmp.name) | |
session_assistant.ingest(tmp_path) | |
os.remove(tmp_path) | |
finally: | |
file.file.close() | |
return "Files inserted!" | |
def ping(): | |
return "Pong!" | |