diff --git a/pdf-rag-app/.vs/VSWorkspaceState.json b/pdf-rag-app/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/pdf-rag-app/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/pdf-rag-app/.vs/pdf-rag-app.slnx/FileContentIndex/14838a78-2f2b-4413-9d26-ac68b170f145.vsidx b/pdf-rag-app/.vs/pdf-rag-app.slnx/FileContentIndex/14838a78-2f2b-4413-9d26-ac68b170f145.vsidx new file mode 100644 index 000000000..080862a0b Binary files /dev/null and b/pdf-rag-app/.vs/pdf-rag-app.slnx/FileContentIndex/14838a78-2f2b-4413-9d26-ac68b170f145.vsidx differ diff --git a/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/.wsuo b/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/.wsuo new file mode 100644 index 000000000..be8496bf1 Binary files /dev/null and b/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/.wsuo differ diff --git a/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/DocumentLayout.json b/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/DocumentLayout.json new file mode 100644 index 000000000..cc06d3299 --- /dev/null +++ b/pdf-rag-app/.vs/pdf-rag-app.slnx/v18/DocumentLayout.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\anand\\endee\\pdf-rag-app\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [] + } + ] +} \ No newline at end of file diff --git a/pdf-rag-app/.vs/slnx.sqlite b/pdf-rag-app/.vs/slnx.sqlite new file mode 100644 index 000000000..8523c6138 Binary files /dev/null and b/pdf-rag-app/.vs/slnx.sqlite differ diff --git a/pdf-rag-app/__pycache__/main.cpython-313.pyc b/pdf-rag-app/__pycache__/main.cpython-313.pyc new file mode 100644 index 000000000..54ccd4b7c Binary files /dev/null and b/pdf-rag-app/__pycache__/main.cpython-313.pyc differ diff --git a/pdf-rag-app/main.py b/pdf-rag-app/main.py new file mode 100644 index 000000000..f7b87f38d --- /dev/null +++ b/pdf-rag-app/main.py @@ -0,0 +1,54 @@ +from fastapi import FastAPI, UploadFile +import shutil +import os + +# Gemini +import google.generativeai as genai + +# PDF Reader +from pypdf import PdfReader + +# Load API key +from dotenv import load_dotenv +load_dotenv() + +genai.configure(api_key=os.getenv("GEMINI_API_KEY")) +model = genai.GenerativeModel("gemini-pro") + +app = FastAPI() + +# simple memory storage +PDF_TEXT = "" + +@app.post("/upload/") +async def upload_pdf(file: UploadFile): + global PDF_TEXT + + with open(file.filename, "wb") as buffer: + shutil.copyfileobj(file.file, buffer) + + reader = PdfReader(file.filename) + text = "" + + for page in reader.pages: + text += page.extract_text() + + PDF_TEXT = text + + return {"message": "PDF uploaded and processed"} + +@app.get("/ask/") +def ask_question(query: str): + global PDF_TEXT + + prompt = f""" + Answer the question based on this PDF content: + + {PDF_TEXT[:3000]} + + Question: {query} + """ + + response = model.generate_content(prompt) + + return {"answer": response.text} \ No newline at end of file diff --git a/pdf-rag-app/python b/pdf-rag-app/python new file mode 100644 index 000000000..e69de29bb