Spaces:
Sleeping
Sleeping
| 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 = [] | |
| try: | |
| 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) | |
| finally: | |
| file.file.close() | |
| finally: | |
| session_assistant.ingest("files/") | |
| os.remove("files/") | |
| return "Files inserted!" | |
| def ping(): | |
| return "Pong!" | |