The CivicHacks demo comes with four civic datasets, but you can easily swap them out with your own data. The RAG pipeline supports multiple file formats and works with any text-based content.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/holzerjm/civichacks-demo/llms.txt
Use this file to discover all available pages before exploring further.
Supported file types
The demo supports these file formats out of the box:| Format | Extension | Notes |
|---|---|---|
| Plain text | .txt | Simplest option, used in the demo |
| PDF documents | .pdf | Requires llama-index-readers-file (already in requirements) |
| CSV spreadsheets | .csv | Read as text content |
| Word documents | .docx | Requires llama-index-readers-file |
| Web pages | N/A | Use SimpleWebPageReader from LlamaIndex |
The
llama-index-readers-file package is already included in requirements.txt, so PDF and DOCX support is ready to use.Quick start: Bring your own data
The fastest way to try your own data is with the BYOD (Bring Your Own Data) scripts:Replace the demo datasets
To customize the track-specific data used in Steps 2 and 3, replace the files in thedata/ directory:
Update track configuration in demo_step2_rag.py
Edit the
TRACKS dictionary to reference your new files:scripts/demo_step2_rag.py
Load data from web pages
You can also load data directly from web pages using LlamaIndex’sSimpleWebPageReader:
Multi-file exploration
The BYOD scripts support loading multiple files into a single index for cross-document analysis:- “Compare the findings across these reports”
- “What themes are common across all documents?”
- “Which report mentions climate change most?”
The auto-discovery logic works as follows:
| Files in userdata/ | Behavior |
|---|---|
| 0 files | Prompts for a file path |
| 1 file | Automatically uses that file |
| 2+ files | Shows a numbered list to pick from (or type a to load all) |
--all flag | Loads every file into a single combined index |
File validation
The BYOD scripts validate files before processing:- File existence: Checks that the path is valid
- Extension check: Ensures the file type is supported
- Size limits: Validates reasonable file sizes
- Graceful errors: Skips unreadable files when loading multiple documents
Next steps
Change the AI model
Try different models for speed or quality
Customize the UI
Modify the Gradio interface appearance