Production-ready serverless health advice application powered by AWS Lex v2 with Lambda fulfillment and full voice support
The AWS Health Advice Chatbot is a comprehensive portfolio project that demonstrates advanced cloud engineering and modern frontend development skills. Built with AWS Lex v2 for natural language understanding, Lambda fulfillment for dynamic responses, and complete voice integration for an immersive user experience.
- โก Lambda Fulfillment - Dynamic health advice generation with personalized responses
- ๐ค Full Voice Support - Complete speech-to-text and text-to-speech capabilities
- ๐ค Intelligent Conversations - Natural language processing with AWS Lex v2
- ๐๏ธ Infrastructure as Code - Complete Terraform automation
- ๐ Enterprise Security - IAM least-privilege and proper Lambda permissions
- ๐ฑ Modern Frontend - Responsive React application with voice controls
- ๐ฐ Cost Optimized - Efficient Lambda execution with minimal AWS resource usage
- ๐ Text-to-Speech - All bot responses spoken aloud with auto-play
- ๐ค Speech-to-Text - Speak your health questions directly
- ๐ Voice Controls - Toggle voice on/off, individual message replay
- ๐ Smart Listening - Visual feedback during voice input
- ๐ฑ Mobile Voice - Full voice support on mobile browsers
- โฟ Accessible - Screen reader compatible with ARIA labels
๐ค User: [Clicks microphone] "How much water should I drink?"
๐ค App: [Converts speech to text in input field]
๐ค User: [Presses Enter to send]
๐ค Bot: [Lambda generates dynamic health advice]
๐ App: [Automatically speaks response aloud]
Browser | Speech Recognition | Text-to-Speech | Overall |
---|---|---|---|
Chrome | โ Excellent | โ Excellent | โญโญโญโญโญ |
Safari | โ Good | โ Good | โญโญโญโญ |
Edge | โ Good | โ Good | โญโญโญโญ |
Firefox | โ Limited | โ Basic | โญโญ |
AWS architecture diagram showing the complete serverless flow from React frontend through Lex v2, Lambda fulfillment, and infrastructure components.
# Required tools
aws --version # AWS CLI v2+
terraform --version # Terraform v1.0+
node --version # Node.js v16+
# Clone repository
git clone https://github.com/abaasi256/AWS-Health-Advice-Chatbot
cd aws-health-advice-chatbot
# Deploy AWS infrastructure with Lambda fulfillment
cd infra
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your preferences
terraform init
terraform plan
terraform apply
cd ../frontend
cp .env.example .env
# Update .env with Terraform output values
npm install
npm start
# Opens http://localhost:3000
- Test in AWS Console: Use TestBotAlias in Lex Console
- Test Frontend: Open http://localhost:3000
- Try Voice Features: Click microphone and speaker buttons
- Monitor Lambda: Check CloudWatch logs for function execution
The chatbot provides dynamic, AI-generated health advice through Lambda fulfillment:
Topic | Voice Commands | Lambda Response Features |
---|---|---|
๐ฅ Diet Tips | "Give me healthy diet tips" | Random selection from nutrition database + health disclaimer |
๐ง Hydration | "How much water should I drink?" | Personalized hydration advice with intake calculations |
๐โโ๏ธ Exercise | "What exercises should I do?" | Dynamic workout recommendations with intensity levels |
๐งโโ๏ธ Mental Wellness | "Give me mental wellness tips" | Randomized mindfulness and stress management advice |
๐ด Sleep | "How can I sleep better?" | Sleep hygiene tips with personalized recommendations |
๐ค User: "I need mental wellness advice"
๐ค Lambda Response:
"Maintain strong social connections with family and friends. Keep a gratitude journal to focus on positive aspects of life.
โ ๏ธ Important: This is general health information for educational purposes only. Always consult with qualified healthcare providers for personalized medical guidance."
- Function Name:
health-advice-chatbot-handler
- Runtime: Python 3.9
- Handler:
healthAdviceHandler.lambda_handler
- Timeout: 30 seconds
- Memory: 128 MB
HEALTH_ADVICE = {
'DietTips': [
"Focus on whole foods like fruits, vegetables, lean proteins...",
"Include healthy fats from sources like avocados, nuts...",
"Eat the rainbow - different colored fruits and vegetables..."
],
'ExerciseTips': [...],
'MentalWellness': [...],
'SleepAdvice': [...],
'WaterInfo': [...]
}
- Random Selection: Varies advice on each interaction
- Health Disclaimers: Automatically appended to all responses
- Error Handling: Graceful fallbacks for unknown intents
- Logging: CloudWatch integration for monitoring
Professional AWS architecture diagram using official AWS icons, showing the complete serverless infrastructure.
Lambda integration successfully configured with TestBotAlias. Shows dynamic mental wellness advice generated by Lambda function.
Complete voice-enabled frontend with working text-to-speech, speech recognition, and Lambda-generated responses with health disclaimers.
- โ
Lambda Function:
health-advice-chatbot-handler
deployed and working - โ Lex Integration: TestBotAlias configured with Lambda fulfillment
- โ Dynamic Responses: Variable health advice generated per interaction
- โ Voice Features: Full speech-to-text and text-to-speech functionality
- โ Frontend Integration: React app successfully connects to Lex
- โ Health Disclaimers: Automatically included in all Lambda responses
- โ Error Handling: Graceful fallbacks and user-friendly error messages
- โ Architecture Documentation: Professional AWS diagram with official icons
- Amazon Lex v2 - Natural language understanding with intent recognition
- AWS Lambda - Serverless compute for dynamic response generation
- Python 3.9 - Lambda runtime with health advice logic
- Terraform - Infrastructure as Code with Lambda deployment
- CloudWatch - Logging and monitoring for Lambda functions
- IAM - Fine-grained access control and Lambda permissions
- React 18 - Modern functional components with hooks
- Web Speech API - Browser-native speech recognition and synthesis
- AWS SDK v3 - Modular cloud service integration for Lex
- Styled Components - CSS-in-JS with dynamic theming
- Lex v2 Events - Proper event handling and response formatting
- Dynamic Content - Randomized health advice selection
- Error Handling - Robust exception management
- Health Compliance - Medical disclaimers and educational focus
aws-health-advice-chatbot/
โโโ ๐ infra/ # Terraform Infrastructure โญ
โ โโโ main.tf # Lambda + Lex integration (WORKING)
โ โโโ variables.tf # Input variables
โ โโโ outputs.tf # Infrastructure outputs
โ โโโ terraform.tfvars.example # Configuration template
โ โโโ lambda_function.zip # Auto-generated Lambda package
โโโ ๐ lambda/ # Lambda Function โญ
โ โโโ healthAdviceHandler.py # Main Lambda handler (WORKING)
โ โโโ requirements.txt # Python dependencies
โโโ ๐ frontend/ # Voice-Enhanced React App โญ
โ โโโ src/
โ โ โโโ components/ # UI components with voice
โ โ โ โโโ ChatInterface.js # Main chat with voice features
โ โ โโโ services/ # AWS & Voice services
โ โ โ โโโ lexService.js # AWS Lex integration
โ โ โ โโโ voiceService.js # Voice capabilities (FIXED)
โ โ โโโ config.js # Voice configuration
โ โ โโโ App.js # Main application
โ โโโ __tests__/ # Voice feature tests
โ โโโ package.json # Dependencies with voice libs
โ โโโ README.md # Frontend voice guide
โโโ ๐ Screenshots/ # Working Bot Evidence โญ
โ โโโ aws-architecture-diagram.png # Official AWS architecture diagram
โ โโโ Screenshot 2025-05-26 at 9.39.04 PM.png # Lex Console
โ โโโ Screenshot 2025-05-26 at 9.44.24 PM.png # Frontend
โโโ ๐ README.md # This documentation
# Core Configuration
aws_region = "us-east-1"
environment = "dev"
project_name = "health-advice-chatbot"
bot_name = "HealthAdviceBot"
locale_id = "en_US"
# AWS Lex Configuration (from Terraform outputs)
REACT_APP_AWS_REGION=us-east-1
REACT_APP_LEX_BOT_ID=your_bot_id_here
REACT_APP_LEX_LOCALE_ID=en_US
# Voice Configuration
REACT_APP_VOICE_ENABLED=true
REACT_APP_VOICE_AUTO_PLAY=true
REACT_APP_VOICE_SPEECH_RATE=1.0
REACT_APP_VOICE_SPEECH_PITCH=1.0
REACT_APP_VOICE_SPEECH_VOLUME=1.0
REACT_APP_VOICE_LANGUAGE=en-US
# Test Lambda locally
cd lambda
python3 healthAdviceHandler.py
# Expected output: JSON response with health advice
# Frontend Testing
cd frontend
npm test # Run all tests including voice
npm start # Test voice features manually
โ
Lambda function responds to Lex events
โ
Voice toggle on/off works
โ
Auto-play speaks bot responses
โ
Microphone captures speech correctly
โ
Speech-to-text accuracy
โ
Speaker icons appear on bot messages
โ
Individual message playback works
โ
TestBotAlias uses Lambda fulfillment
โ
Dynamic responses vary between interactions
โ
Health disclaimers included in all responses
โ
CloudWatch logs show Lambda execution
cd infra
terraform validate
terraform plan
terraform fmt
Usage Level | Lambda | Lex v2 | CloudWatch | Voice APIs | Total |
---|---|---|---|---|---|
Development | $0.20 | $1-2 | $0.50 | Free* | ~$2.70 |
Light Production | $0.60 | $3-5 | $1 | Free* | ~$6.60 |
Medium Production | $2.00 | $8-12 | $2 | Free* | ~$14 |
*Voice APIs are browser-native and free
- Requests: $0.20 per 1M requests
- Duration: $0.0000166667 per GB-second
- Memory: 128 MB (cost-optimized)
- Execution Time: ~100ms average
- Dynamic Responses: More engaging user experience
- Scalable: Automatic scaling with usage
- Educational Disclaimers: Proper health guidance compliance
- Monitoring: Built-in CloudWatch logging
- Maintainable: Easy to update health advice content
- IAM Least Privilege - Separate roles for Lambda and Lex
- Lambda Permissions - Specific ARN-based invocation permissions
- No Data Storage - Stateless conversations, no PII retention
- Voice Privacy - All voice processing happens locally in browser
- Health Compliance - Educational disclaimers on all medical advice
- Encryption - TLS 1.2+ for all data in transit
- Monitoring - CloudWatch logging for Lambda execution and errors
- Execution Role - Minimal CloudWatch Logs permissions only
- Source ARN - Restricted to specific Lex bot and alias
- Environment Variables - Non-sensitive configuration only
- Error Handling - No sensitive information in error messages
- Lambda function duration and memory usage
- Lex conversation success rates
- Intent recognition accuracy
- User interaction patterns
- Voice feature usage analytics
- CloudWatch Logs:
/aws/lambda/health-advice-chatbot-handler
- Metrics: Invocations, Duration, Errors, Throttles
- Alarms: Error rate and duration thresholds
- X-Ray: Optional distributed tracing
- Speech recognition success rates
- Text-to-speech usage patterns
- Voice vs text input preferences
- Browser compatibility statistics
- โ AWS Cloud Architecture - Lex v2, Lambda, IAM, CloudWatch
- โ Serverless Development - Python Lambda functions with proper error handling
- โ Infrastructure as Code - Advanced Terraform patterns with Lambda deployment
- โ Modern Frontend Development - React 18, hooks, state management
- โ Voice Technology Integration - Web Speech API, audio processing
- โ User Experience Design - Accessibility, mobile-first, voice UX
- โ Performance Optimization - Cost-effective Lambda architecture
- โ DevOps Practices - Automated deployment, testing, monitoring
- โ Problem Solving - Complex integration challenges and solutions
- โ Documentation Excellence - Professional diagrams and comprehensive guides
- Lambda-Powered Health Assistant - Dynamic, educational health advice
- Voice-First Architecture - Complete speech integration with minimal cloud costs
- Progressive Enhancement - Works perfectly with and without voice
- Accessibility Excellence - Voice navigation for diverse user needs
- Healthcare Compliance - Proper medical disclaimers and educational focus
Error Message:
Invalid Bot Configuration: Access denied while invoking lambda function
arn:aws:lambda:us-east-1:ACCOUNT:function:health-advice-chatbot-handler
from arn:aws:lex:us-east-1:ACCOUNT:bot-alias/BOTID/ALIASID.
Please check the policy on this function.
Root Cause: Lambda function lacks permission for Lex bot alias to invoke it.
โ Solution:
- Add Bot Alias Lambda Permission:
# Get your bot ID and Lambda function name from Terraform outputs
BOT_ID=$(cd infra && terraform output -raw lex_bot_id)
LAMBDA_FUNCTION=$(cd infra && terraform output -raw lambda_function_name)
AWS_REGION=$(cd infra && terraform output -raw aws_region)
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
# Add permission for bot alias to invoke Lambda
aws lambda add-permission \
--function-name $LAMBDA_FUNCTION \
--statement-id "AllowLexBotAlias" \
--action "lambda:InvokeFunction" \
--principal "lexv2.amazonaws.com" \
--source-arn "arn:aws:lex:$AWS_REGION:$ACCOUNT_ID:bot-alias/$BOT_ID/*" \
--region $AWS_REGION
- Verify Permission:
aws lambda get-policy --function-name $LAMBDA_FUNCTION --region $AWS_REGION
Error Message:
Cannot call FulfillmentCodeHook for Intent ExerciseTips.
BotAlias/LocaleId TestBotAlias/en_US doesn't have an associated Lambda Function.
Root Cause: Bot alias not properly configured with Lambda function association.
โ Solution - Create Bot Alias with Lambda Integration:
- Build Bot Locale:
BOT_ID=$(cd infra && terraform output -raw lex_bot_id)
LOCALE_ID=$(cd infra && terraform output -raw lex_bot_locale_id)
AWS_REGION=$(cd infra && terraform output -raw aws_region)
# Build the bot locale
aws lexv2-models build-bot-locale \
--bot-id $BOT_ID \
--bot-version "DRAFT" \
--locale-id $LOCALE_ID \
--region $AWS_REGION
# Wait for build to complete (check status)
aws lexv2-models describe-bot-locale \
--bot-id $BOT_ID \
--bot-version "DRAFT" \
--locale-id $LOCALE_ID \
--region $AWS_REGION \
--query 'botLocaleStatus'
- Create Bot Version:
# Create bot version after locale is built
VERSION_RESPONSE=$(aws lexv2-models create-bot-version \
--bot-id $BOT_ID \
--description "Production version with Lambda" \
--bot-version-locale-specification "$LOCALE_ID={sourceBotVersion=DRAFT}" \
--region $AWS_REGION \
--output json)
# Extract version number
BOT_VERSION=$(echo $VERSION_RESPONSE | jq -r '.botVersion')
echo "Created bot version: $BOT_VERSION"
- Create Bot Alias with Lambda Association:
LAMBDA_ARN=$(cd infra && terraform output -raw lambda_function_arn)
# Create alias with Lambda function
aws lexv2-models create-bot-alias \
--bot-alias-name "TestBotAlias" \
--description "Test alias with Lambda fulfillment" \
--bot-version $BOT_VERSION \
--bot-id $BOT_ID \
--bot-alias-locale-settings "$LOCALE_ID={enabled=true,codeHookSpecification={lambdaCodeHook={lambdaArn=$LAMBDA_ARN,codeHookInterfaceVersion=1.0}}}" \
--region $AWS_REGION
- Verify Alias Configuration:
# Get alias ID
ALIAS_ID=$(aws lexv2-models list-bot-aliases \
--bot-id $BOT_ID \
--region $AWS_REGION \
--query 'botAliasSummaries[?botAliasName==`TestBotAlias`].botAliasId' \
--output text)
# Check alias configuration
aws lexv2-models describe-bot-alias \
--bot-id $BOT_ID \
--bot-alias-id $ALIAS_ID \
--region $AWS_REGION
Create this script to fix both issues automatically:
#!/bin/bash
# fix-lambda-permissions.sh
set -e
echo "๐ง Fixing Lambda permissions for Lex bot..."
# Get Terraform outputs
cd infra
BOT_ID=$(terraform output -raw lex_bot_id)
BOT_NAME=$(terraform output -raw lex_bot_name)
LAMBDA_FUNCTION=$(terraform output -raw lambda_function_name)
LAMBDA_ARN=$(terraform output -raw lambda_function_arn)
LOCALE_ID=$(terraform output -raw lex_bot_locale_id)
AWS_REGION=$(terraform output -raw aws_region)
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
cd ..
echo "๐ Configuration:"
echo " Bot ID: $BOT_ID"
echo " Lambda: $LAMBDA_FUNCTION"
echo " Region: $AWS_REGION"
# Step 1: Add Lambda permissions
echo "๐ Adding Lambda permissions..."
# Permission for bot
aws lambda add-permission \
--function-name $LAMBDA_FUNCTION \
--statement-id "AllowLexBot" \
--action "lambda:InvokeFunction" \
--principal "lexv2.amazonaws.com" \
--source-arn "arn:aws:lex:$AWS_REGION:$ACCOUNT_ID:bot/$BOT_ID/*" \
--region $AWS_REGION || echo "Bot permission already exists"
# Permission for bot alias
aws lambda add-permission \
--function-name $LAMBDA_FUNCTION \
--statement-id "AllowLexBotAlias" \
--action "lambda:InvokeFunction" \
--principal "lexv2.amazonaws.com" \
--source-arn "arn:aws:lex:$AWS_REGION:$ACCOUNT_ID:bot-alias/$BOT_ID/*" \
--region $AWS_REGION || echo "Bot alias permission already exists"
echo "โ
Lambda permissions configured"
# Step 2: Build bot locale
echo "๐จ Building bot locale..."
aws lexv2-models build-bot-locale \
--bot-id $BOT_ID \
--bot-version "DRAFT" \
--locale-id $LOCALE_ID \
--region $AWS_REGION
# Wait for build
echo "โณ Waiting for bot locale build..."
while true; do
STATUS=$(aws lexv2-models describe-bot-locale \
--bot-id $BOT_ID \
--bot-version "DRAFT" \
--locale-id $LOCALE_ID \
--region $AWS_REGION \
--query 'botLocaleStatus' \
--output text)
echo " Build status: $STATUS"
if [ "$STATUS" = "Built" ]; then
break
elif [ "$STATUS" = "Failed" ]; then
echo "โ Bot locale build failed"
exit 1
fi
sleep 10
done
echo "โ
Bot locale built successfully"
# Step 3: Create bot version
echo "๐ฆ Creating bot version..."
VERSION_RESPONSE=$(aws lexv2-models create-bot-version \
--bot-id $BOT_ID \
--description "Version with Lambda fulfillment" \
--bot-version-locale-specification "$LOCALE_ID={sourceBotVersion=DRAFT}" \
--region $AWS_REGION \
--output json)
BOT_VERSION=$(echo $VERSION_RESPONSE | jq -r '.botVersion')
echo "โ
Created bot version: $BOT_VERSION"
# Wait for version
echo "โณ Waiting for bot version..."
while true; do
STATUS=$(aws lexv2-models describe-bot-version \
--bot-id $BOT_ID \
--bot-version $BOT_VERSION \
--region $AWS_REGION \
--query 'botStatus' \
--output text)
echo " Version status: $STATUS"
if [ "$STATUS" = "Available" ]; then
break
elif [ "$STATUS" = "Failed" ]; then
echo "โ Bot version creation failed"
exit 1
fi
sleep 5
done
# Step 4: Create/update bot alias with Lambda
echo "๐ Creating bot alias with Lambda association..."
# Delete existing alias if it exists
aws lexv2-models delete-bot-alias \
--bot-id $BOT_ID \
--bot-alias-id TSTALIASID \
--region $AWS_REGION 2>/dev/null || echo "No existing alias to delete"
# Create new alias
aws lexv2-models create-bot-alias \
--bot-alias-name "TestBotAlias" \
--description "Test alias with Lambda fulfillment" \
--bot-version $BOT_VERSION \
--bot-id $BOT_ID \
--bot-alias-locale-settings "$LOCALE_ID={enabled=true,codeHookSpecification={lambdaCodeHook={lambdaArn=$LAMBDA_ARN,codeHookInterfaceVersion=1.0}}}" \
--region $AWS_REGION
echo "๐ Lambda integration fixed!"
echo ""
echo "โ
Next steps:"
echo " 1. Test in Lex console with TestBotAlias"
echo " 2. Try: 'Give me healthy diet tips'"
echo " 3. Check CloudWatch logs: /aws/lambda/$LAMBDA_FUNCTION"
echo " 4. Update frontend .env if needed"
Usage:
chmod +x fix-lambda-permissions.sh
./fix-lambda-permissions.sh
- Go to Lex Console
- Open your
HealthAdviceBot
- Use TestBotAlias for testing
- Try: "Give me healthy diet tips"
- Verify Lambda function is called in CloudWatch logs
# Test bot alias directly
aws lexv2-runtime recognize-text \
--bot-id $BOT_ID \
--bot-alias-id "TSTALIASID" \
--locale-id $LOCALE_ID \
--session-id "test-session" \
--text "Give me healthy diet tips" \
--region $AWS_REGION
# Watch Lambda logs in real-time
aws logs tail /aws/lambda/health-advice-chatbot-handler --follow --region $AWS_REGION
Lambda Permissions:
- Bot-level permission exists
- Bot-alias level permission exists
- Lambda policy shows both permissions
Bot Configuration:
- Bot locale is "Built" status
- Bot version is "Available"
- Bot alias exists with Lambda ARN
- TestBotAlias shows Lambda configuration
Testing:
- Lex console test works with TestBotAlias
- Lambda function executes (check CloudWatch)
- Dynamic responses vary between tests
- Health disclaimers appear in responses
- Frontend connects to bot alias
Common Issues:
- ๐ซ "No alias found" โ Run alias creation step
- ๐ซ "Access denied" โ Add Lambda permissions
- ๐ซ "Bot not found" โ Check Terraform deployment
- ๐ซ "Function timeout" โ Check Lambda logs
If everything breaks:
# 1. Destroy and recreate infrastructure
cd infra
terraform destroy -auto-approve
terraform apply -auto-approve
# 2. Run fix script
cd ..
./fix-lambda-permissions.sh
# 3. Test immediately
echo "Testing bot alias..."
BOT_ID=$(cd infra && terraform output -raw lex_bot_id)
aws lexv2-runtime recognize-text \
--bot-id $BOT_ID \
--bot-alias-id "TSTALIASID" \
--locale-id "en_US" \
--session-id "emergency-test" \
--text "Give me diet tips" \
--region us-east-1
Result: Complete Lambda integration with proper permissions and bot alias configuration.
- Update Lambda Function (lambda/healthAdviceHandler.py):
HEALTH_ADVICE = {
'NewHealthTopic': [
"Your new health advice content here...",
"Additional advice for variety...",
"More educational content..."
]
}
- Add Intent to Terraform (infra/main.tf):
resource "aws_lexv2models_intent" "new_health_topic" {
bot_id = aws_lexv2models_bot.health_advice_bot.id
bot_version = "DRAFT"
locale_id = aws_lexv2models_bot_locale.health_advice_bot_locale.locale_id
name = "NewHealthTopic"
sample_utterance {
utterance = "Tell me about new health topic"
}
fulfillment_code_hook {
enabled = true
}
}
- Deploy Changes:
cd infra
terraform apply
- Test with voice commands and Lambda responses
// Customize voice settings in config.js
voice: {
enabled: true,
autoPlay: true,
speechRate: 1.2, // Faster speech
speechPitch: 1.1, // Higher pitch
speechVolume: 0.9, // Slightly quieter
language: 'en-US'
}
- โ Dynamic Content Generation - Varied responses prevent repetition
- โ Educational Compliance - Automatic health disclaimers
- โ Superior User Experience - Voice + intelligent responses
- โ Scalable Architecture - Lambda scales automatically with usage
- โ Cost Effective - Pay-per-use Lambda model
- โ Maintainable - Easy to update health advice content
- โ Monitorable - Built-in CloudWatch logging and metrics
- Browser-Native Voice - No cloud audio processing required
- Lambda Fulfillment - Dynamic health advice generation
- Local Privacy - All voice processing happens on user's device
- Progressive Enhancement - Graceful fallback for any browser
Result: A production-ready, voice-enabled health assistant that demonstrates cutting-edge serverless and frontend skills while maintaining optimal cloud architecture and user experience.
- ๐ Personalization - User context and preference tracking
- ๐ Analytics - Health advice effectiveness metrics
- ๐ Multi-Language - Internationalization support
- ๐ Integration - External health APIs and databases
- ๐ต Voice Personalities - Multiple voice options and tones
- ๐ Multi-Language Voice - Support for Spanish, French, German
- ๐ Wake Words - "Hey Health Assistant" activation
- ๐ฃ๏ธ Conversation Memory - Context-aware voice interactions
- AWS Polly Integration - Professional voice quality option
- Lambda Layers - Shared health advice libraries
- Step Functions - Complex health advice workflows
- API Gateway - RESTful health advice endpoints
This is a portfolio project demonstrating modern cloud and voice development skills. For feedback or collaboration:
- Fork the repository
- Create a feature branch
- Implement Lambda or voice improvements
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Ready to discuss this Lambda-powered, voice-enabled cloud solution?
- ๐ผ LinkedIn: Abaasi Kisuule
- ๐ง Email: kisuulemaliq@gmail.com
- ๐ GitHub: abaasi256
โญ Star this repository if it demonstrates the modern serverless and voice technology skills you're looking for!
๐คโก Built with โค๏ธ to showcase cutting-edge AWS Lambda integration and voice technology
Try the voice features live - ask about your health and listen to the intelligent Lambda-generated responses!
๐ฏ Lambda Function: health-advice-chatbot-handler
| ๐ค Bot Alias: TestBotAlias
| ๐ค Voice: Enabled