Skip to content

feat: RAG knowledge base has no pre-loaded regulatory documents β€” users must add their own PDFs to get answers about EU AI Act, GDPR, and ISO 42001, but the README implies these are built-inΒ #1473

Description

@prince-pokharna

πŸ› Problem Statement

The AegisAI roadmap lists: "Pre-loaded regulatory knowledge base (EU AI Act PDF, GDPR, ISO 42001, NIST AI RMF)" as a planned feature. The README's RAG module description states: "Ask natural language questions about EU AI Act, GDPR, ISO 42001 β€” grounded answers from regulatory source docs."

However, backend/data/regulatory_docs/ (where RAG source documents should live) currently contains only a placeholder instruction: "Add your regulatory PDFs here." This means a fresh AegisAI deployment cannot answer any regulatory question out of the box β€” despite the README explicitly advertising EU AI Act Q&A as a core feature.

A user who installs AegisAI following the Quick Start guide and asks "What are the requirements for high-risk AI systems under the EU AI Act?" will get "I don't have relevant information in my knowledge base" β€” directly contradicting the README.

Proposed Fix

Add a scripts/download_regulatory_docs.py script that downloads publicly available regulatory documents from official sources and places them in backend/data/regulatory_docs/:

# scripts/download_regulatory_docs.py
"""
Downloads publicly available regulatory documents for AegisAI's RAG knowledge base.
All documents are freely available from official government/standards sources.
"""

import httpx
from pathlib import Path

REGULATORY_DOCS = [
    {
        "name": "EU_AI_Act_2024.pdf",
        "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ:L_202401689",
        "description": "EU AI Act β€” Official Journal of the European Union (2024/1689)",
    },
    {
        "name": "NIST_AI_RMF_1_0.pdf",
        "url": "https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf",
        "description": "NIST AI Risk Management Framework 1.0",
    },
    # GDPR β€” available from EUR-Lex
    # ISO 42001 β€” note: ISO docs are not freely available; use the publicly released synopsis
]

def download_regulatory_docs():
    output_dir = Path("backend/data/regulatory_docs")
    output_dir.mkdir(parents=True, exist_ok=True)

    for doc in REGULATORY_DOCS:
        output_path = output_dir / doc["name"]
        if output_path.exists():
            print(f"Already downloaded: {doc['name']}")
            continue
        print(f"Downloading {doc['name']}...")
        response = httpx.get(doc["url"], follow_redirects=True, timeout=60)
        output_path.write_bytes(response.content)
        print(f"Saved to {output_path}")

if __name__ == "__main__":
    download_regulatory_docs()

Add this to docker-compose.yml as a one-time initialization step, and document it in docs/getting-started.md as a required setup step.

Files to Create/Modify

File Change
scripts/download_regulatory_docs.py New download script
docker-compose.yml Add init container that runs the script on first startup
docs/getting-started.md Document the script as a required setup step
backend/data/regulatory_docs/README.md Update placeholder with actual instructions

Suggested labels: enhancement, rag, roadmap, level: beginner

I would like to work on this. Could you please assign it to me?

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions