When the arts council in St. Louis recently decided to join the Culturalyst network, one of the features they expressed keen interest in was improving artist discovery.
The search functionality on the site can find artists and organizations by name, but what if you don't know their name? The only fallback was to scroll through the lists.
So we put our heads together once again to figure out how we could improve artist discovery with AI. The result was the Culturalyst Concierge, an AI assistant that you can ask anything about local arts and culture and get results that can include lists of relevant artists on the platform.
To pull this off, we built a system that provides an OpenAI Assistant with a vector store of all the artists on the given site (each participating site has its own unique Concierge). Thereafter, when artists add, update, or delete their profiles, they are synced with the Assistant, keeping the vector store it searches semantically always up to date.
Our first proof of concept sent a request and expected the full response back in a tidy JSON ball for parsing. This worked well, but it took 45 seconds on average to return its results. No one wants to look at a spinner that long. And since the OpenAI Assistants API currently has no support for structured outputs, we could talk it into giving a JSON response, but it wasn't guaranteed, and there was no recourse but a retry if it didn't parse.
We had another go at it, this time using the streaming API, which returns a stream of packets containing partial results, and any annotations (file references) that contributed to the new packet. We parse the incoming packets, and relay the transformed data to the front end as an ever-growing response, handling all the annotations on the backend. The result is that you see a response that you can begin to read in 5-10 seconds.
Concierge responses can be far better than a flat search engine like result which includes a name, link and snippet of bio. The results of a search for artists matching a certain criteria with the Culturalyst Concierge actually tell you why the artist is relevant to your question.
For instance, when asked "Who would be a good fit to paint a school mural?" the Concierge responded with entries like:
Kara Crowley - Kara is a storyteller through her portraits and has experience teaching visual arts to high school students. Her mission includes positive identity representation, making her a strong advocate for youth engagement in art projects.
In this way, the always up to date Concierge, looks less like a typical info-dump chatbot and more like an artist advocate, making sure that if someone is asking around for an artist like you, your chances of being found are greatly increased.