Skip to content

Flask-based REST API for uploading PDFs, extracting text, generating embeddings, and storing them in a vector database for intelligent document querying (‘ask your PDF’). Demonstrates skills in file handling, NLP, database indexing, and backend API design.

Notifications You must be signed in to change notification settings

earlhansg/pdf-qa-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 AI-Powered PDF Knowledge Base API

Ask questions directly to your PDFs.
This project provides a Flask backend that allows you to:

  • Upload PDFs
  • Extract and embed text into a vector database (Pinecone/Weaviate/Faiss)
  • Query documents via a REST or GraphQL API

🚀 Features

  • 📄 Upload PDFs – research papers, reports, manuals, or any document
  • 🧩 Text Extraction – automatically parses PDF text
  • 🧠 AI Embeddings – generates vector representations of document chunks
  • 📦 Vector Database – stores embeddings in Pinecone / Weaviate / Faiss
  • 🔎 Intelligent Search – query documents in natural language (“Ask your PDF”)
  • 🌐 API Ready – REST + optional GraphQL endpoints for easy integration
  • 💻 Frontend Friendly – works with Next.js, React, or any frontend

🛠 Tech Stack

  • Backend: Flask (Python)
  • Database: Pinecone / Weaviate / Faiss
  • AI Embeddings: OpenAI / Hugging Face
  • API: REST + GraphQL (optional)
  • Frontend (Demo): Next.js

📂 Project Structure

.
├── app.py              # Flask app entry point
├── routes/             # API routes (upload, query, etc.)
├── services/           # PDF parsing, embedding, DB handling
└── README.md           # Documentation

About

Flask-based REST API for uploading PDFs, extracting text, generating embeddings, and storing them in a vector database for intelligent document querying (‘ask your PDF’). Demonstrates skills in file handling, NLP, database indexing, and backend API design.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages