A comprehensive AI/ML application demonstrating integration with AWS Bedrock, AgentCore, and various AI frameworks for testing AI Bill of Materials (AIBOM) detection.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GitHub Actions CI/CD β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Lint ββ β Test ββ β Security ββ β Deploy β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS Cloud β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β VPC β β
β β βββββββββββββ βββββββββββββ βββββββββββββββββββββ β β
β β β ALB βββββΆβ ECS βββββΆβ Bedrock/AgentCoreβ β β
β β βββββββββββββ β Fargate β βββββββββββββββββββββ β β
β β βββββββββββββ β β β
β β β βΌ β β
β β βββββββββββββ βββββββ΄ββββββ βββββββββββββββββββββ β β
β β β Lambda β β S3 β β Knowledge Base β β β
β β βββββββββββββ β DynamoDB β β (OpenSearch) β β β
β β β β Redis β βββββββββββββββββββββ β β
β β βΌ βββββββββββββ β β
β β βββββββββββββ β β
β β β API β β β
β β β Gateway β β β
β β βββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
aibom-test/
βββ .github/
β βββ workflows/
β βββ ci.yml # CI pipeline (lint, test, security)
β βββ cd-deploy.yml # CD pipeline (deploy to AWS)
β βββ security-scan.yml # Scheduled security scans
βββ app/
β βββ __init__.py
β βββ main.py # FastAPI application
βββ config/
β βββ bedrock-agent-staging.yaml
β βββ bedrock-agent-production.yaml
βββ infrastructure/
β βββ app.py # CDK application entry
β βββ cdk.json # CDK configuration
β βββ requirements.txt # CDK dependencies
β βββ stacks/
β βββ network_stack.py # VPC, subnets, security groups
β βββ security_stack.py # IAM roles, secrets
β βββ storage_stack.py # S3, DynamoDB, ElastiCache
β βββ compute_stack.py # ECS, Lambda, API Gateway
β βββ bedrock_stack.py # Bedrock agents, guardrails
β βββ monitoring_stack.py # CloudWatch, alarms
βββ scripts/
β βββ deploy.sh # Main deployment script
β βββ deploy_bedrock_agent.py # Bedrock agent deployment
β βββ setup-local.sh # Local development setup
β βββ run-security-scans.sh # Security scanning
βββ tests/
β βββ integration/ # Integration tests
βββ Dockerfile # Multi-stage Docker build
βββ docker-compose.yml # Local development services
βββ requirements.txt # Python dependencies
βββ sample_bedrock_app.py # Sample AI/ML code
βββ README.md
- Python 3.11+
- Docker & Docker Compose
- AWS CLI configured
- Node.js 18+ (for CDK)
- Snyk CLI (for security scans)
# 1. Clone and setup
git clone <repository-url>
cd aibom-test
# 2. Run setup script
./scripts/setup-local.sh
# 3. Update environment variables
cp env.example .env
# Edit .env with your credentials
# 4. Start the application
source venv/bin/activate
python -m uvicorn app.main:app --reload# Deploy infrastructure
./scripts/deploy.sh deploy-infra -e staging
# Deploy application
./scripts/deploy.sh deploy-app -e staging
# Deploy Bedrock agent
./scripts/deploy.sh deploy-agent -e staging
# Or deploy everything at once
./scripts/deploy.sh deploy-all -e stagingThe project includes comprehensive Snyk security scanning:
- SCA: Open-source dependency vulnerabilities
- SAST: Code security analysis
- IaC: Infrastructure as Code security
- Container: Docker image vulnerabilities
- AIBOM: AI Bill of Materials
Run scans locally:
./scripts/run-security-scans.sh| Secret | Description |
|---|---|
AWS_ACCESS_KEY_ID |
AWS access key |
AWS_SECRET_ACCESS_KEY |
AWS secret key |
AWS_DEPLOY_ROLE_ARN |
IAM role for deployments |
SNYK_TOKEN |
Snyk API token |
SLACK_WEBHOOK_URL |
Slack notifications (optional) |
This application demonstrates usage of:
- LangChain & LangChain-AWS
- PyTorch & TorchVision
- TensorFlow & Keras
- Hugging Face Transformers
- LlamaIndex
- spaCy
- OpenAI SDK
- Anthropic SDK
- AWS Bedrock: Claude, Titan, Llama, Mistral, Cohere
- OpenAI: GPT-4o, DALL-E, Whisper, Embeddings
- Anthropic: Claude 3.5 Sonnet, Claude 3 Opus
- Hugging Face: BERT, GPT-2, Llama, Mistral, etc.
| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Health check |
/invoke |
POST | Invoke Bedrock model |
/agent |
POST | Invoke Bedrock Agent |
/models |
GET | List available models |
- Lint: Ruff, Black, isort, mypy
- Test: pytest with coverage
- Security: Snyk SCA, SAST
- Build: Docker image build & push to ECR
- Deploy Infrastructure: CDK deploy
- Deploy Application: ECS service update
- Deploy Bedrock Agent: Agent configuration
- Integration Tests: API validation
- Notify: Slack notification
See env.example for all available configuration options.
Key variables:
# AWS
AWS_DEFAULT_REGION=us-east-1
# Bedrock
BEDROCK_AGENT_ID=your-agent-id
DEFAULT_CHAT_MODEL=anthropic.claude-3-5-sonnet-20241022-v2:0
# API Keys
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...MIT License - see LICENSE file for details.