Deploying LearningStudio Wrapper to Hugging Face
This guide explains how to deploy the LearningStudio callout detection wrapper to a HuggingFace Inference Endpoint.
Prerequisites
- HuggingFace Account: Create an account at huggingface.co
- HuggingFace CLI: Install the CLI tool
- AWS Infrastructure: The callout detection Lambda stack must be deployed
Install HuggingFace CLI
pip install huggingface_hub
Login to HuggingFace
huggingface-cli login
Follow the prompts to enter your HuggingFace token.
Step 1: Get AWS API Gateway Info
After deploying the callout detection Lambda stack, get the API Gateway URL and key:
cd callout-detection-lambda
# Get the API Gateway endpoint URL
aws cloudformation describe-stacks \
--stack-name callout-detection-dev \
--query "Stacks[0].Outputs[?OutputKey=='ServiceEndpoint'].OutputValue" \
--output text
# Get the API key
aws apigateway get-api-keys \
--name-query "learningstudio-key-dev" \
--include-values \
--query "items[0].value" \
--output text
Save these values - you'll need them when configuring the HF endpoint.
Step 2: Create HuggingFace Model Repository
First time only - create the model repository:
huggingface-cli repo create YOUR_USERNAME/learningstudio-callout-wrapper --type model
Or create via the HuggingFace web interface at https://huggingface.co/new
Step 3: Upload Wrapper Files
Navigate to the wrapper directory and upload files:
cd callout-detection-lambda/hf_inference/learningstudio_wrapper
# Upload all files to the repository
huggingface-cli upload YOUR_USERNAME/learningstudio-callout-wrapper \
handler.py inference.py requirements.txt README.md \
--repo-type model
Step 4: Create Inference Endpoint
- Go to https://ui.endpoints.huggingface.co/
- Click "New endpoint"
- Select your model repository (
YOUR_USERNAME/learningstudio-callout-wrapper) - Configure the endpoint:
- Instance type: CPU (this wrapper doesn't need GPU)
- Region: Choose a region close to your API Gateway
- Scaling: Start with 1 replica
Step 5: Configure Secrets
In the HuggingFace Inference Endpoint settings, add environment variables:
- Go to your endpoint settings
- Click "Settings" or "Environment Variables"
- Add the following secrets:
| Name | Value |
|---|---|
API_GATEWAY_URL |
https://xxx.execute-api.us-east-1.amazonaws.com/dev |
API_KEY |
Your API key from Step 1 |
Step 6: Test the Endpoint
Once the endpoint is running, test it:
# Set your HuggingFace token
export HF_TOKEN="your-hf-token"
# Test with a URL
curl -X POST https://YOUR_ENDPOINT.endpoints.huggingface.cloud \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputs": "https://example.com/test-drawing.png"}'
Expected response:
{
"predictions": [
{
"id": 1,
"label": "callout",
"class_id": 0,
"confidence": 0.95,
"bbox": {"x1": 100, "y1": 200, "x2": 300, "y2": 400}
}
],
"total_detections": 1,
"image": "...",
"image_width": 1920,
"image_height": 1080
}
Updating the Wrapper
To update the wrapper code:
cd callout-detection-lambda/hf_inference/learningstudio_wrapper
# Upload updated files
huggingface-cli upload YOUR_USERNAME/learningstudio-callout-wrapper \
handler.py inference.py requirements.txt README.md \
--repo-type model
The endpoint will automatically pick up the changes on the next request (after a brief cold start).
Rotating API Keys
To rotate the API key without touching the HF endpoint:
- Create a new API key in AWS API Gateway
- Update the
API_KEYsecret in HF endpoint settings - Delete the old API key in AWS
Troubleshooting
"API_GATEWAY_URL and API_KEY must be set"
The environment variables are not configured. Go to your endpoint settings and add the secrets.
Timeout errors
The callout detection pipeline takes 30-120 seconds typically. If you're getting timeouts:
- Check that the Lambda stack is deployed and working
- Verify the API Gateway URL is correct
- Check CloudWatch logs for the Lambda functions
Authentication errors
- Verify the API key is correct
- Check that the key hasn't been deleted or rotated
- Ensure the key is associated with the usage plan
Connection refused
- Verify the API Gateway URL is correct
- Check that the endpoint is in the right region
- Ensure the Lambda stack is deployed
Monitoring
- HuggingFace: Check endpoint logs in the HF dashboard
- AWS CloudWatch: Monitor Lambda function logs and metrics
- API Gateway: View API Gateway metrics for request counts and errors