Internal Chatbot

The Chatbot UI for this application is built using NextJS and Material UI components. When this application was originally begun it called an AWS Lambda function to interact with Amazon Bedrock. Since then it's continually been changed as I've been asked to update the architecture. As of today (January 25, 2025) the UI uses the AWS SDK to send requests to an Amazon Bedrock Agent that has collaborating Agents. Those collaborating Agents have knowledge bases and action groups that are Lambda functions that can process requests as they interact with Bedrock as well.

From this Chatbot internal users can ask questions about our internal Developer Portal (also featured in my portfolio) or other general questions. I have created a component that renders Markdown so when a response has code examples we can properly display that code. I have also set up a knowledge base that points at the AWS SDK for JavaScript (we are a JavaScript/Node.js shop) for better answers around how to use the different AWS SDKs. Even though we have the knowledge base for the AWS SDK, the answers still aren't always completely correct. It's just one of those things working with GenAI that can be confusing and frustrating. I'll be honest when I say that I don't enjoy working on AI because I find it frustrating although it's where I spend most of my time because that's my direction.

This chatbot has been developed completely by me, front-end to back-end. I've been writing code for 10+ about the first seven of those years was on the front-end. It's been in the last three and a half years or so that I've spent most of my time on the back-end writing NodeJS Lambdas which prepared me heavily for this project. GenAI is new and this initial push to work on it has largely fallen in my lap.