|
|
--- |
|
|
title: Agentic Document Intelligence |
|
|
emoji: 📄 |
|
|
colorFrom: blue |
|
|
colorTo: pink |
|
|
sdk: gradio |
|
|
sdk_version: 6.2.0 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
license: apache-2.0 |
|
|
--- |
|
|
|
|
|
# 📄 Agentic Document Intelligence |
|
|
### PDF RAG with Together.ai |
|
|
|
|
|
This Hugging Face Space demonstrates a **Retrieval-Augmented Generation (RAG)** system that allows users to upload a PDF and ask questions that are **strictly grounded in the document content**. |
|
|
|
|
|
The Space serves as a **foundational Agentic Document Intelligence component**, designed to be simple, transparent, and extensible. |
|
|
|
|
|
--- |
|
|
|
|
|
## 🚀 What This Space Does |
|
|
|
|
|
- Upload a PDF document |
|
|
- Build a semantic index using embeddings + FAISS |
|
|
- Ask natural-language questions |
|
|
- Receive answers grounded only in the uploaded document |
|
|
- View retrieved source passages for transparency |
|
|
|
|
|
--- |
|
|
|
|
|
## 🧠 Architecture Overview |
|
|
|
|
|
1. **PDF Ingestion** |
|
|
- Extracts text from uploaded PDF |
|
|
- Cleans and normalizes content |
|
|
|
|
|
2. **Chunking** |
|
|
- Splits text into overlapping semantic chunks |
|
|
- Ensures contextual continuity |
|
|
|
|
|
3. **Vector Indexing** |
|
|
- Generates embeddings using Sentence Transformers |
|
|
- Indexes vectors using FAISS (cosine similarity) |
|
|
|
|
|
4. **Retrieval** |
|
|
- Retrieves top-K relevant chunks for each query |
|
|
|
|
|
5. **Generation (RAG)** |
|
|
- Injects retrieved context into LLM prompt |
|
|
- Uses Together.ai (Mixtral) for answer generation |
|
|
|
|
|
--- |
|
|
|
|
|
## ▶️ How to Use This Space (End-to-End) |
|
|
|
|
|
### **Step 1: Upload a PDF** |
|
|
- Click **“Upload PDF”** |
|
|
- Select a text-based PDF file |
|
|
> ⚠️ Note: Scanned PDFs without text extraction will not work unless OCR is applied. |
|
|
|
|
|
--- |
|
|
|
|
|
### **Step 2: Wait for Indexing** |
|
|
- The system will: |
|
|
- extract text |
|
|
- split it into chunks |
|
|
- build a FAISS vector index |
|
|
- You will see a confirmation message: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
### **Step 3: Ask a Question** |
|
|
- Type a natural-language question related to the document |
|
|
Examples: |
|
|
- *“Summarize the document”* |
|
|
- *“What is the main contribution?”* |
|
|
- *“Explain the methodology section”* |
|
|
|
|
|
--- |
|
|
|
|
|
### **Step 4: Receive the Answer** |
|
|
You will get: |
|
|
- ✅ A generated answer based **only on document context** |
|
|
- 📌 Retrieved source passages with similarity scores |
|
|
- 🚫 No hallucinated or external information |
|
|
|
|
|
If the answer is not present in the document, the system will respond: |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
### **Step 3: Ask a Question** |
|
|
- Type a natural-language question related to the document |
|
|
Examples: |
|
|
- *“Summarize the document”* |
|
|
- *“What is the main contribution?”* |
|
|
- *“Explain the methodology section”* |
|
|
|
|
|
--- |
|
|
|
|
|
### **Step 4: Receive the Answer** |
|
|
You will get: |
|
|
- ✅ A generated answer based **only on document context** |
|
|
- 📌 Retrieved source passages with similarity scores |
|
|
- 🚫 No hallucinated or external information |
|
|
|
|
|
If the answer is not present in the document, the system will respond: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
## 🤖 Models Used |
|
|
|
|
|
### **Language Model** |
|
|
- **Provider:** Together.ai |
|
|
- **Model:** `mistralai/Mixtral-8x7B-Instruct-v0.1` |
|
|
|
|
|
### **Embedding Model** |
|
|
- `sentence-transformers/all-MiniLM-L6-v2` |
|
|
|
|
|
--- |
|
|
|
|
|
## 🧰 Tech Stack |
|
|
|
|
|
- Python |
|
|
- Gradio (UI) |
|
|
- FAISS (vector search) |
|
|
- Sentence Transformers (embeddings) |
|
|
- Together.ai (LLM) |
|
|
- Hugging Face Spaces |
|
|
|
|
|
--- |
|
|
|
|
|
## 🔐 Environment Configuration (For Developers) |
|
|
|
|
|
### **Secrets** |
|
|
- `TOGETHER_API_KEY` → Together.ai API key |
|
|
- `OPENAI_API_KEY` → Same value (compatibility with OpenAI client) |
|
|
|
|
|
### **Variables** |
|
|
- `TOGETHER_MODEL` → `mistralai/Mixtral-8x7B-Instruct-v0.1` |
|
|
- `TOGETHER_BASE_URL` → `https://api.together.xyz/v1` |
|
|
|
|
|
--- |
|
|
|
|
|
## 🧩 Intended Use Cases |
|
|
|
|
|
- Research paper Q&A |
|
|
- Technical documentation assistants |
|
|
- Internal knowledge bases |
|
|
- RAG pipeline reference implementation |
|
|
- Agentic AI system foundations |
|
|
|
|
|
--- |
|
|
|
|
|
## 🔮 Future Enhancements |
|
|
|
|
|
- Multi-PDF support |
|
|
- Chat memory |
|
|
- Streaming responses |
|
|
- Agent routing & tool usage |
|
|
- Evaluation and scoring agents |
|
|
|
|
|
--- |
|
|
|
|
|
## 🙌 Author |
|
|
|
|
|
Built by **Abhishek Prithvi Teja** |
|
|
Focused on **Agentic AI, RAG systems, and applied LLM engineering** |
|
|
|
|
|
--- |
|
|
|
|
|
## 🏷️ Tags |
|
|
|
|
|
`rag` · `agentic-ai` · `document-qa` · `faiss` · `together-ai` · `huggingface-spaces` |
|
|
|