A CDK-deployed, AWS-hosted web app that gives organizations a secure, ready-made generative AI workspace with chat, RAG, agents and many business use cases.
aws-solutions-library-samples/qnabot-on-aws
A multi-channel, multi-language chatbot on AWS that answers customer questions over chat, voice, SMS and Amazon Alexa, managed through a Content Designer UI.
- Stars
- 448
- Forks
- 262
- Open issues
- 21
- Last commit
- 2 months ago
What is it?
QnABot on AWS is an AWS Solutions implementation that deploys a conversational question-and-answer chatbot into your own AWS account. Questions and answers are stored in Amazon OpenSearch Service and managed through a Content Designer web UI, and the bot is built on Amazon Lex so it can be reached from a web client, Amazon Connect, SMS, voice and Amazon Alexa.
Beyond keyword-style answer lookup, the solution can use Amazon Bedrock for semantic matching with text embeddings and for generative answers over a Bedrock Knowledge Base, with optional fallback to Amazon Kendra when no answer is found. It also includes optional pre- and post-processing guardrails, streaming responses over WebSocket, and logging with OpenSearch Dashboards and CloudWatch for reviewing usage, unanswered utterances and user feedback.
Deployment is done through CloudFormation templates, with a documented custom build path using Node.js, Python and Poetry. The Designer UI supports Chrome and Firefox.
Key features
- 01Answers questions over chat, voice, SMS and Amazon Alexa through Amazon Lex.
- 02Content Designer UI for authoring and managing question and answer entries.
- 03Semantic matching with text embeddings and generative answers via Amazon Bedrock.
- 04Fallback to Amazon Kendra or a Bedrock Knowledge Base when no answer matches.
- 05Optional guardrails to scan and mask inputs and responses.
- 06Usage logging and dashboards for unanswered questions and user feedback.
Use cases
- Deploying a customer support FAQ bot that answers common questions across web chat and phone.
- Reducing call center wait times by automating routine support questions through Amazon Connect.
- Building a question-answering assistant grounded in a company's own documents via a Bedrock Knowledge Base.
Quick start
- 1
Install Node.js, npm, git LFS, Python 3.14+, Poetry and the AWS CLI, then clone the repo
- 2
Install QnABot's Node modules from the source directory
npm install - 3
Generate config.json, then set region, profile, namespace and devEmail
npm run config - 4
Create the bootstrap S3 bucket, then deploy the stack (run bootstrap first, then up)
npm run up
Things to know
- Custom deployment requires a Linux environment, with Amazon Linux 2 as the tested platform.
- Setup needs several toolchains (Node 24+, Python 3.14+, Poetry, git LFS) and a deployed AWS account, which will incur AWS costs.
- Deployment depends on Amazon Bedrock, OpenSearch and other AWS services, so it is not a self-contained local install.
In collections
Topics
FAQ
- What is qnabot-on-aws?
- A multi-channel, multi-language chatbot on AWS that answers customer questions over chat, voice, SMS and Amazon Alexa, managed through a Content Designer UI. QnABot on AWS is an AWS Solutions implementation that deploys a conversational question-and-answer chatbot into your own AWS account. Questions and answers are stored in Amazon OpenSearch Service and managed through a Content Designer web UI, and the bot is built on Amazon Lex so it can be reached from a web client, Amazon Connect, SMS, voice and Amazon Alexa.
- Is qnabot-on-aws free to use? What license does it have?
- qnabot-on-aws is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is qnabot-on-aws still maintained?
- Updated within 6 months. The last commit to qnabot-on-aws was on Sep 9, 2026.
- What can I use qnabot-on-aws for?
- Deploying a customer support FAQ bot that answers common questions across web chat and phone. Reducing call center wait times by automating routine support questions through Amazon Connect. Building a question-answering assistant grounded in a company's own documents via a Bedrock Knowledge Base.
- How do I install qnabot-on-aws?
- Install Node.js, npm, git LFS, Python 3.14+, Poetry and the AWS CLI, then clone the repo Install QnABot's Node modules from the source directory: npm install Generate config.json, then set region, profile, namespace and devEmail: npm run config Create the bootstrap S3 bucket, then deploy the stack (run bootstrap first, then up): npm run up
- Where can I get qnabot-on-aws?
- The source code and installation instructions are on GitHub: https://github.com/aws-solutions-library-samples/qnabot-on-aws
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An AWS-provided solution that deploys a web dashboard for building, comparing and productionizing generative AI chat and agent use cases on Amazon Bedrock and SageMaker AI.
A self-hosted Discord bot that brings OpenAI chat, image generation, transcription, moderation and web search into Discord servers.
Guide and chatbot web app for running a small local LLM with an OpenAI-compatible API on consumer-grade hardware via Ollama, vLLM or llama-cpp-python.
A Slack app that lets workspace members chat with OpenAI's ChatGPT and DALL-E models in channel threads, DMs, and the Home tab.
A Ruby library for building LLM-powered applications, offering a unified interface to many LLM providers, vector databases, RAG pipelines and assistants.