Metadata-Version: 2.4
Name: pdf-autofillr
Version: 1.1.3
Summary: PDF form-filling ecosystem: chatbot, doc-upload, mapper and RAG — install any combination
Project-URL: Homepage, https://github.com/yourorg/pdf-autofillr
License: MIT
Keywords: chatbot,document-extraction,form-filling,llm,pdf,rag
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Provides-Extra: all
Requires-Dist: fastapi>=0.100.0; extra == 'all'
Requires-Dist: pdf-autofillr-chatbot>=0.2.7; extra == 'all'
Requires-Dist: pdf-autofillr-doc-upload>=0.1.3; extra == 'all'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'all'
Requires-Dist: pdf-autofillr-rag[openai]>=0.2.2; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'all'
Provides-Extra: azure
Requires-Dist: azure-identity>=1.15.0; extra == 'azure'
Requires-Dist: azure-storage-blob>=12.19.0; extra == 'azure'
Provides-Extra: chatbot
Requires-Dist: fastapi>=0.100.0; extra == 'chatbot'
Requires-Dist: pdf-autofillr-chatbot>=0.2.7; extra == 'chatbot'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'chatbot'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'chatbot'
Provides-Extra: chatbot-doc-upload
Requires-Dist: fastapi>=0.100.0; extra == 'chatbot-doc-upload'
Requires-Dist: pdf-autofillr-chatbot>=0.2.7; extra == 'chatbot-doc-upload'
Requires-Dist: pdf-autofillr-doc-upload>=0.1.3; extra == 'chatbot-doc-upload'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'chatbot-doc-upload'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'chatbot-doc-upload'
Provides-Extra: chatbot-mapper
Requires-Dist: fastapi>=0.100.0; extra == 'chatbot-mapper'
Requires-Dist: pdf-autofillr-chatbot>=0.2.7; extra == 'chatbot-mapper'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'chatbot-mapper'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'chatbot-mapper'
Provides-Extra: chatbot-rag
Requires-Dist: fastapi>=0.100.0; extra == 'chatbot-rag'
Requires-Dist: pdf-autofillr-chatbot>=0.2.7; extra == 'chatbot-rag'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'chatbot-rag'
Requires-Dist: pdf-autofillr-rag[openai]>=0.2.2; extra == 'chatbot-rag'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'chatbot-rag'
Provides-Extra: doc-upload
Requires-Dist: fastapi>=0.100.0; extra == 'doc-upload'
Requires-Dist: pdf-autofillr-doc-upload>=0.1.3; extra == 'doc-upload'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'doc-upload'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'doc-upload'
Provides-Extra: doc-upload-mapper
Requires-Dist: fastapi>=0.100.0; extra == 'doc-upload-mapper'
Requires-Dist: pdf-autofillr-doc-upload>=0.1.3; extra == 'doc-upload-mapper'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'doc-upload-mapper'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'doc-upload-mapper'
Provides-Extra: doc-upload-rag
Requires-Dist: fastapi>=0.100.0; extra == 'doc-upload-rag'
Requires-Dist: pdf-autofillr-doc-upload>=0.1.3; extra == 'doc-upload-rag'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'doc-upload-rag'
Requires-Dist: pdf-autofillr-rag[openai]>=0.2.2; extra == 'doc-upload-rag'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'doc-upload-rag'
Provides-Extra: gcp
Requires-Dist: google-cloud-storage>=2.14.0; extra == 'gcp'
Provides-Extra: mapper
Requires-Dist: fastapi>=0.100.0; extra == 'mapper'
Requires-Dist: pdf-autofillr-mapper>=1.0.6; extra == 'mapper'
Requires-Dist: uvicorn[standard]>=0.20.0; extra == 'mapper'
Provides-Extra: rag
Requires-Dist: pdf-autofillr-rag[openai]>=0.2.2; extra == 'rag'
Provides-Extra: rag-chroma
Requires-Dist: pdf-autofillr-rag[chroma]>=0.2.2; extra == 'rag-chroma'
Provides-Extra: rag-openai
Requires-Dist: pdf-autofillr-rag[openai]>=0.2.2; extra == 'rag-openai'
Provides-Extra: rag-pinecone
Requires-Dist: pdf-autofillr-rag[pinecone]>=0.2.2; extra == 'rag-pinecone'
Provides-Extra: rag-weaviate
Requires-Dist: pdf-autofillr-rag[weaviate]>=0.2.2; extra == 'rag-weaviate'
Provides-Extra: s3
Requires-Dist: boto3>=1.35.0; extra == 's3'
Requires-Dist: botocore>=1.35.0; extra == 's3'
Description-Content-Type: text/markdown

# pdf-autofillr

PDF form-filling ecosystem — chatbot, doc-upload, mapper, and RAG — install any combination.

## Install

```bash
# Full stack (everything)
pip install pdf-autofillr[all]

# Chatbot + mapper (conversational form filling)
pip install pdf-autofillr[chatbot]

# Doc upload + mapper (extract from document → fill PDF)
pip install pdf-autofillr[doc-upload]

# Chatbot + mapper + RAG (self-learning predictions)
pip install pdf-autofillr[chatbot,rag]

# Doc upload + mapper + RAG
pip install pdf-autofillr[doc-upload,rag]

# Chatbot + doc_upload + mapper (both input methods)
pip install pdf-autofillr[chatbot,doc-upload]

# Individual modules standalone
pip install pdf-autofillr-chatbot
pip install pdf-autofillr-doc-upload
pip install pdf-autofillr-mapper
pip install pdf-autofillr-rag
```

## After install

```bash
# Write .env.example, configs/, data/ for your installed combination:
pdf-autofillr setup

# Check that everything is configured correctly:
pdf-autofillr status
```

## Configure

```bash
cp .env.example .env
# Edit .env:
#   Set your API key  → OPENAI_API_KEY=sk-...
#   Set your PDF path → chatbot_PDF_PATH=./data/input/blank_form.pdf
```

Drop your blank (empty) PDF form into `data/input/blank_form.pdf`.

## Start

```bash
pdf-autofillr chatbot       # start chatbot server (port 8001)
pdf-autofillr doc-upload    # start doc_upload server (port 8001)
pdf-autofillr mapper        # start mapper server (port 8000)
pdf-autofillr rag           # start RAG server (port 8000)
```

## How the modules connect

```
User types → CHATBOT ──→ collects fields ──→ MAPPER ──→ fills blank_form.pdf
                                                ↕
User uploads doc → DOC_UPLOAD → extracts fields → MAPPER → fills blank_form.pdf
                                                ↕
                                             RAG ← learns from each run, predicts next time
```

- **chatbot → mapper**: `MAPPER_API_URL` empty = inprocess (default). Set URL = HTTP server.
- **doc_upload → mapper**: same pattern, `MAPPER_API_URL`.
- **mapper → rag**: set `RAG_ENABLED=true` in `.env` + `[rag] enabled=true` in `mapper_config.ini`.

## Cloud storage

Add cloud extras when needed:

```bash
pip install "pdf-autofillr[chatbot,s3]"    # chatbot with S3 storage
pip install "pdf-autofillr[all,gcp]"       # full stack with GCP
pip install "pdf-autofillr[all,azure]"     # full stack with Azure
```

## RAG vector store

```bash
pip install "pdf-autofillr[chatbot,rag,rag-pinecone]"  # Pinecone
pip install "pdf-autofillr[chatbot,rag,rag-chroma]"    # ChromaDB
```

## Module docs

- `chatbot/README.md`
- `doc_upload/README.md`
- `mapper/README.md`
- `rag/README.md`
