Abstract
Bedrock Chat is an open-source AI & Machine Learning project. AWS-native chatbot using Bedrock. A multilingual generative AI platform powered by Amazon Bedrock. Supports chat, custom bots with knowledge (RAG), bot sharing via a bot store, and task automation using agents. It is built using TypeScript, FastAPI, Python, React, Docker. The complete source code is publicly available on GitHub under the MIT No Attribution, making it a useful reference for students building an AI & Machine Learning mini project or final-year project.
1. Introduction
A multilingual generative AI platform powered by Amazon Bedrock. Supports chat, custom bots with knowledge (RAG), bot sharing via a bot store, and task automation using agents.
Add your own instruction and knowledge (a.k.a RAG. The bot can be shared among application users via bot store market place. The customized bot also can be published as stand-alone API (See the detail).
API Management, Mark bots as essential, Analyze usage for bots. detail
2. Objective
AWS-native chatbot using Bedrock
This project demonstrates how TypeScript, FastAPI, Python can be applied to a real-world AI & Machine Learning problem.
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Node.js (LTS) and npm / yarn / pnpm
- VS Code or any code editor
- Python 3.8 or later
- pip / virtualenv for dependencies
- VS Code, PyCharm or Jupyter Notebook
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/aws-samples/bedrock-chat.git
cd bedrock-chat- In the us-east-1 region, open Bedrock Model access > Manage model access > Check all of models you wish to use and then Save changes.
- Please have UNIX, Docker and a Node.js runtime environment.
- Clone this repository
- Install npm packages
- If necessary, edit the following entries in cdk.json.
- bedrockRegion: Region where Bedrock is available. NOTE: Bedrock does NOT support all regions for now.
- allowedIpV4AddressRanges, allowedIpV6AddressRanges: Allowed IP Address range.
- enableLambdaSnapStart: Defaults to true. Set to false if deploying to a region that doesn't support Lambda SnapStart for Python functions.
aws dynamodb execute-statement --statement "UPDATE \"$BotTableNameV3\" SET BedrockKnowledgeBase.type='shared' SET SyncStatus='QUEUED' WHERE PK='$UserID' AND SK='BOT#$BotID'"
# Execute for all target bots
aws stepfunctions start-execution --state-machine-arn $EmbeddingStateMachineArngit clone https://github.com/aws-samples/bedrock-chatcd bedrock-chat
cd cdk
npm cinpx cdk bootstrapFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Deploy the model as a web app with Streamlit, Flask or FastAPI
- Compare against an additional model and report the metric difference
- Add explainability (SHAP / Grad-CAM)
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- What dataset does the project use and how was it pre-processed?
- Which algorithm / model architecture is used and why was it chosen over alternatives?
- How are training and testing data split, and how is overfitting avoided?
- Which evaluation metrics (accuracy, precision, recall, F1) are reported and what do they mean here?
- How would you deploy this model for real users?
9. Source Code & License
This project is developed by aws-samples and published on GitHub under the MIT No Attribution. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an AI & Machine Learning project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for AI & Machine Learning Internship