Customer support · Production

A New Bot: Building a Vespa-Powered RAG Slackbot for Community Q&A

The problem

Vespa.ai saw Docker pulls soar from 2M to 11M in a few months in late 2023, leading to a flood of questions on their Slack channel that required an automated solution to handle at scale.

Workflow diagram · grounded in source
1
Slack message ingested to Vespa
integration
“The bot should feed every message (with users' consent, of course) posted in the Slack channel into a Vespa app”
2
User asks bot a question
trigger
“Users can write @Vespa Bot <question> to ask questions to the bot”
3
Retrieve best-ranked messages
ai_action
“the bot should query the Vespa app to retrieve the best-ranked individual messages”
4
Group messages by thread
ai_action
“The messages are then grouped by their respective threads or conversations, using the maximum relevance score of the messages in each thread”
5
OpenAI generates summary
ai_action
“retrieved and sent to OpenAI for summarization”
6
Bot posts reply in Slack
output
“ctx.client().chatPostMessage { p -> p.text(generateVespaSummaryFromQuery(text)).ts(ts) }”
7
Emoji feedback refines ranking
feedback_loop
“We also have a function that compares the number of 👍 against 👎 (emoji reactions on Slack), which will alter the ranking to favor those who provide good replies and ask good questions”
Reported outcome

The team built and deployed a working Slackbot powered by Vespa and OpenAI that continuously indexes community messages and answers questions based on past conversations and documentation, with accuracy expected to improve as more interactions are processed.

Reported metrics
Vespa Docker pulls growthsoaring from 2M to 11M
Bot accuracy over timecapabilities and accuracy will improve
Reported stack
VespaOpenAISlack SDK for JavaKotlinGradleTerraformSpaceLiftGCP
Source
https://blog.vespa.ai/a-new-bot/
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

The team built and deployed a working Slackbot powered by Vespa and OpenAI that continuously indexes community messages and answers questions based on past conversations and documentation, with accuracy expected to im…

What tools did this team use?

Vespa, OpenAI, Slack SDK for Java, Kotlin, Gradle, Terraform, SpaceLift, GCP.

What results were reported?

Vespa Docker pulls growth: soaring from 2M to 11M; Bot accuracy over time: capabilities and accuracy will improve (source-reported, not independently verified).

How is this customer support AI workflow structured?

Slack message ingested to Vespa → User asks bot a question → Retrieve best-ranked messages → Group messages by thread → OpenAI generates summary → Bot posts reply in Slack → Emoji feedback refines ranking.