Spaces:
No application file
No application file
| from typing import List | |
| from fastapi import FastAPI, Form, UploadFile, File | |
| from data_ingetion.data import AdvancedDatabase | |
| from data_ingetion.pre_processor import read_metadata | |
| from generator.response import generate_response | |
| db = AdvancedDatabase() | |
| app = FastAPI() | |
| async def ingest_files( | |
| metadata: str = Form(...), | |
| group_name: str = Form(...), | |
| files: List[UploadFile] = File(...), | |
| ): | |
| """Upload and process multiple files (PDFs and DOCXs) in single endpoint inference asyncronously""" | |
| result = await db.ingest(files, metadata, group_name) | |
| return result | |
| async def get_response(query: str, group_name: str, include_chunks: bool = False): | |
| """Invoke RAG pipeline with given collection as VectorDB to retrieve context and generate context rich responses""" | |
| response = generate_response(query, group_name) | |
| if include_chunks: | |
| return {"llm_response": response[0], "chunks": response[1]} | |
| return {"llm_response": response} | |
| async def get_metadata(): | |
| """Fetch Metadata of recently uploaded documents grouped by collections ie. time they were uploaded.""" | |
| response = read_metadata() | |
| return {"Metadata": response} | |