Website Chatbot

I’m curious if there’s any info on creating a website chatbot that is based solely on our website’s publicly available information. I’m considering Umbraco.AI using Azure Foundry.

  • After setting up Umbraco.AI, do I need to create a webhook to the Foundry implementation?
  • Any other things to consider or that may be a better route?

The idea is to have a chatbot answer customer questions by giving concise recommendations with either Product configurations, documentation help, or other website info. The customer will most likely ask about what they need for a specific scenario.

Thanks.

Hi @jason-delaplain

I’ve got a proof of concept I did a while ago before Umbraco AI that has a chatbot and uses Azure AI Search (Foundry IQ) and Azure OpenAI Service. It’s a bit out of date so I need to update it and get it running, but let me see what I can put together. It may be useful for you as a starting point.

Justin

I got pretty far on this - but bailed when I saw token expense risks.

I found Asyntai - it seemed to scrape the site, allow for a chat through one line of JS and do 90% of what I was hoping for. And provides a dashboard so you can review what people are using the bot for and steer it correctly…

Not used it in production yet as the client is reviewing but might be a quick, cheap win for you? Again - not reviewed what it does with the data, how expensive it becomes in prod… but might be a good learning exercise.

HTH

Steve

Hi @jason-delaplain

Not sure if this helps, but here’s my proof of concept.

How it works

It uses retrieval augmented generation (RAG), not fine-tuning:

  1. Indexing. The site’s rendered pages are fetched over HTTP, stripped of navigation, headers and footers, and split into chunks of about 1,000 characters. Each chunk is turned into a vector embedding with Azure OpenAI (via Microsoft Foundry) and stored in Azure AI Search. Because it reads the rendered HTML, anything a Block List, Block Grid, partial or view component outputs is indexed without mapping each document type.
  2. Keeping the index current. A page is re-indexed when it’s published and removed when it’s unpublished. A Hangfire job re-indexes the whole site every night.
  3. Answering. A visitor’s question is embedded and matched against the index. The best-matching chunks go to GPT as context, and the answer comes back in a chat widget with links to the source pages.

It also adds a Chatbot section to the backoffice with two views:

  • Analytics: question volumes, response times, and the most common questions. Questions that get no match are a good way to find gaps in your content.
  • Indexing: re-index, clear or recreate the search index.

Please note: this is a proof of concept

It hasn’t been properly tested and isn’t production ready. Known gaps include no rate limiting on the public chat endpoint and no retention policy for chat logs. It needs your own Azure OpenAI and Azure AI Search resources plus SQL Server. Setup is involved, so please follow the technical documentation in the repo (docs/UmbracoChatbot-Technical-Documentation.md), which covers Azure setup, configuration, installation, costs and known issues.

What’s next

I’m turning this into a proper Umbraco package that is easier to install. Feedback, ideas and issues on GitHub are very welcome.

Justin

Of course, there are third-party chatbots that probably do something similar so it depends if you were looking to build this yourself or just integrate something you pay for as a service.

Nice! I’ll check this out. Thank you.