During my work designing history museum exhibits, I've always been struck by a particular challenge: the gap between the range of fascinating historical stories that exist and our ability to share them effectively. While history museums do an incredible job presenting major historical narratives through exhibits, what about the countless smaller stories that make up the fabric of our neighborhoods?
This question became particularly relevant when I realized I'd been living in my Portland neighborhood for years without knowing much about its history. I could dive into libraries, or search through various historical databases—but that requires knowing what to look for and having both the time and expertise to do the research.
I wanted something simpler: the ability to walk down my street, press a button, and discover interesting, relevant historical stories about my immediate surroundings.
My first idea to solve this problem was to use a typical AI like ChatGPT. By feeding it coordinates, I thought it could generate location-specific stories. While it did produce content, the results were often broad, general, and sometimes inaccurate. I needed something that could handle up-to-date, accurate, and specific information about places that might not make it into traditional AI training data.
This is where RAG (Retrieval Augmented Generation) came into play. Instead of relying solely on ChatGPT, I used Perplexity which uses RAG to search the internet for specific webpages containing relevant information, then generates responses based on that data. This approach allows me to:
I turned this system into a web app that is available for people to try out. The app generates a historical story about what is nearest to you, so it works best to use as you walk through your neighborhood. This app remains an experiment in progress, but the goal is to make local history not just accessible, but engaging and relevant to contemporary life.
I believe this approach demonstrates how AI can enhance education and make history more accessible without replacing traditional historical research and documentation. Instead, it serves as a bridge, connecting people to the rich historical resources that already exist in their communities.
If you'd like to try the app yourself, I have a test version available at whathappenedhereapp.com. Your feedback would be very helpful as I continue development.
Through this experiment, I've discovered several key insights about working with RAG systems:
Initially, I tried to force the story to have specific focuses — such as asking for stories about local wildlife around historical homes. This often led to fabricated content without proper sources. Instead, I learned to let the available information guide the narrative while controlling how the story connects to broader themes.
For example, when generating content about a historic home in Portland's Irvington neighborhood, the system naturally pulled together verified information about:
When I let the app tell these stories it has information about, it gives better results.
One of the biggest challenges for generating accurate information was ensuring that the story was about the correct location. For instance, when generating content about Sunnyside Elementary in Portland, the system would sometimes pull information about similarly named schools in Clackamas, Oregon, or in various communities in California. My solution currently involves:
An interesting challenge emerged around source quality. While I could limit sources to scholarly articles and highly referenced sites, this would potentially miss engaging local stories. Take the theater near Lloyd Center Mall—Reddit sources revealed fascinating community discussions about conflicts between theater and mall owners, and the community's nickname "liemax" for the smaller-than-typical IMAX screen. This kind of drama makes the stories more memorable, so I appreciate the mix of sources I’m currently seeing.
Another significant challenge with RAG systems is handling news articles about proposed developments that never materialized. For instance, when generating stories about the Lloyd Center theater, the system would sometimes treat past proposals as current reality. News articles announced plans to demolish the theater for a new one within the mall, and later proposed multifamily housing on the site—neither of which happened. Yet the AI sometimes presents these abandoned plans as completed projects.
This remains an active challenge I'm working to solve, as historical sources should include news about development plans, but need to be clear about what actually happened.
The What Happened Here app shows how RAG technology can bridge the gap between vast stores of historical information and everyday users. By combining the power of AI with real-time web searches, we can create more accurate, engaging, and accessible ways to share knowledge. If you're interested in applying RAG techniques in your own projects, whether for historical education or other domains, I'd love to connect and share more detailed insights from this experiment. The potential applications of this technology extend far beyond local history—anywhere there's a need to make specialized knowledge more accessible, RAG could provide a solution.