This is my AWS Lex bot that uses an AWS Lambda to give investment portfolio recommendations based on user input details such as age, risk-level, and investment amount.
Assuming that valid input has been provided to the bot, you will be able to receive recommended portfolio diversification percentages based on your personal details.
In the Videos folder I have provided examples of running each test event in the chatbot dialog box, and have also included videos showing general valid/invalid usage of the bot.
Test Events
General Usage
- Valid input - Shows all valid input scenarios
- Invalid input - Shows all invalid input scenarios
Initial Test (Before Lambda Logic)
The Lex bot has the following configurations:
General Criteria:
- Bot name: RoboAdvisor
- Language: English (US)
- Output voice: Salli
- Session timeout: 5 minutes
- Sentiment analysis: No
- COPPA: No
- Advanced options: No
- All other options: The default value
Intents:
- recommendPortfolio
- Utterances
- I want to save money for my retirement
- I'm {age} and I would like to invest for my retirement
- I'm {age} and I want to invest for my retirement
- I want the best option to invest for my retirement
- I'm worried about my retirement
- I want to invest for my retirement
- I would like to invest for my retirement
- Slots
- firstName - AMAZON.US_FIRST_NAME - "Thank you for trusting me to help, could you please give me your name?"
- age - AMAZON.NUMBER - "How old are you?"
- investmentAmount - AMAZON.NUMBER - "How much do you want to invest?"
- riskLevel - AMAZON.AlphaNumeric - "What level of investment risk would you like to take? (None, Low, Medium, High)"
- Utterances
This is an Amazon Lex chatbot that uses a Python 3.7 lambda function.
The following dependencies are used:
- AWS Lex (V1) - NLP chatbot
- AWS Lambda - Business logic extension to Lex bot
The lambda function lambda_function.py will provide the logic for a bot with similar configurations to how I have mine set up.
This project uses the GNU General Public License