Analyze unstructured text data with LLMs and Knowledge Graphs! 🕵️
Intelligence analysts perform sensemaking over collections of documents using various visual and analytic techniques to gain insights from large amounts of text. As data scales grow, our work explores how to leverage two AI technologies, large language models (LLMs) and knowledge graphs (KGs), in a visual text analysis tool, enhancing sensemaking and helping analysts keep pace.
Collaborating with intelligence community experts, we developed a visual analytics system called VisPile. VisPile integrates an LLM and a KG into various UI functions that assist analysts in grouping documents into piles, performing sensemaking tasks like summarization and relationship mapping on piles, and validating LLM- and KG-generated evidence.
This code accompanies the research paper:
VisPile: A Visual Analytics System for Analyzing Multiple Text Documents With Large Language Models and Knowledge Graphs
Adam Coscia, Alex Endert
The 59th Hawaii International Conference on System Sciences (HICSS), 2026
| 📖 Paper |
🎞️ Watch the tutorial video for a demo of how to use VisPile here: https://youtu.be/Yql1nfkrzmU
🚀 To try out a live demo of VisPile, visit: https://adamcoscia.com/papers/vispile/demo/
🌱 If you want to customize VisPile for your own project, start here!
- Install Node.js
>= v22.xand npm>= v11.xby visiting (latest release) - Install Python
v3.9.x(latest release) - Clone this repo to your computer (instructions)
git clone git@github.com:AdamCoscia/VisPile.git
# use --depth if you don't want to download the whole commit history
git clone --depth 1 git@github.com:AdamCoscia/VisPile.git- A frontend Vue 3 web app to visualize data in the browser.
- Additional details can be found in interface/README.md
Navigate to the interface folder:
cd interfaceInstall dependencies:
npm installThen run VisPile:
npm run devNavigate to localhost:3000. You should see VisPile running in your browser :)
- A backend Python 3 Flask app to query the OpenAI API and serve data.
- Additional details can be found in server/README.md
Navigate to the server folder:
cd serverDownload the data:
- Download data.zip
- Move into the server/data directory
- Unzip the file
- You should see 3 new folders in server/data:
News Articles/,embeddings/, andmodels/
Install dependencies:
- If you are running Windows (replace
-3.9with your Python version):
# Start a virtual environment
py -3.9 -m venv venv
# Activate the virtual environment
.\venv\Scripts\activate
# Install dependencies
python -m pip install -r requirements.txt- If you are running MacOS / Linux (replace
python3.9with your Python version):
# Start a virtual environment
python3.9 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Install dependencies
python -m pip install -r requirements.txtNext, create a .env file in this directory and put the following in it:
OPENAI_API_KEY=<<YOUR API KEY HERE>>Finally, run the server:
python main.pyLed by Adam Coscia, VisPile is a result of a collaboration between visualization experts in human centered computing and interaction design from
Georgia Tech.
VisPile is created by
Adam Coscia
and
Alex Endert.
- The example dataset provided comes from the IEEE Visual Analytics Science and Technology (VAST) Challenge 2021, Mini-Challenge 1 (https://vast-challenge.github.io/2021/MC1.html)
To learn more about VisPile, please read our research paper (published at HICSS '26).
@inproceedings{Coscia:2026:VisPile,
author = {Coscia, Adam and Endert, Alex},
title = {VisPile: A Visual Analytics System for Analyzing Multiple Text Documents With Large Language Models and Knowledge Graphs},
year = {2026},
booktitle = {Proceedings of the 59th Hawaii International Conference on System Sciences},
location = {Lahaina, HI, USA},
series = {HICSS-59}
}The software is available under the MIT License.
If you have any questions, feel free to open an issue or contact Adam Coscia.



