WritingStudio / HF_SPACES_CONFIGURATION.md
jmisak's picture
Upload 6 files
6bc56a2 verified
# HuggingFace Spaces Configuration Guide
## Overview
HuggingFace Spaces are configured using **YAML frontmatter** at the top of your `README.md` file. This guide explains how to configure your Writing Studio Space.
## Current Configuration
The `README_HF_SPACES.md` file includes this configuration:
```yaml
---
title: AI Writing Studio
emoji: ✍️
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.0.0
app_file: app.py
pinned: false
license: mit
short_description: Production-grade AI writing assistant with real rubric scoring
tags:
- education
- writing
- nlp
- text-generation
- analysis
suggested_hardware: cpu-basic
suggested_storage: small
---
```
## Configuration Parameters Explained
### Display Settings
**title**: `AI Writing Studio`
- The name shown in your Space
**emoji**: `✍️`
- Icon displayed with your Space
**colorFrom** / **colorTo**: `blue` → `purple`
- Gradient colors for thumbnail
- Options: red, yellow, green, blue, indigo, purple, pink, gray
**short_description**: Brief description for Space thumbnail
### SDK Configuration
**sdk**: `gradio`
- Must be `gradio` for this app
- Other options: `docker`, `static`
**sdk_version**: `4.0.0`
- Gradio version to use
- Can specify any Gradio version
**app_file**: `app.py`
- Entry point file (relative to repository root)
### Hardware Recommendations
**suggested_hardware**: `cpu-basic`
- Recommended tier for duplicators
- Does NOT automatically assign hardware
- Options:
- CPU: `cpu-basic`, `cpu-upgrade`
- GPU: `t4-small`, `t4-medium`, `l4x1`, `l4x4`, `a10g-small`, `a10g-large`, etc.
- TPU: `v5e-1x1`, `v5e-2x2`, `v5e-2x4`
**suggested_storage**: `small`
- Recommended persistent storage
- Does NOT automatically assign storage
- Options: `small`, `medium`, `large`
### Metadata
**pinned**: `false`
- Whether Space stays on top of your profile
**license**: `mit`
- Software license
**tags**: List of descriptive tags
- `education`, `writing`, `nlp`, `text-generation`, `analysis`
- Helps with discoverability
## Hardware Tiers
### Free Tier (cpu-basic)
- Default for all Spaces
- 2 CPU cores
- 16GB RAM
- Works with distilgpt2
- **Recommended for Writing Studio**
### Paid Tiers
**cpu-upgrade** (~$0.10/hour)
- 4 CPU cores
- 32GB RAM
- Better for gpt2
**t4-small** (~$0.60/hour)
- NVIDIA T4 GPU
- 16GB GPU RAM
- Best performance
- Good for gpt2-medium/large
**Higher tiers available** for more demanding workloads
## Customizing Your Space
### Method 1: Edit YAML Frontmatter
1. Open your Space on HuggingFace
2. Click "Files" tab
3. Edit `README.md`
4. Modify YAML frontmatter
5. Commit changes
Example customizations:
```yaml
---
# Change display
title: My Custom Writing Studio
emoji: 📝
colorFrom: green
colorTo: blue
# Upgrade hardware suggestion
suggested_hardware: t4-small
# Pin to profile
pinned: true
---
```
### Method 2: Environment Variables
For application settings (not Space config), use Settings → Variables:
```
DEFAULT_MODEL=gpt2
MAX_TEXT_LENGTH=5000
LOG_LEVEL=DEBUG
ENABLE_CACHE=true
```
## Common Configurations
### Free Tier Optimized (Default)
```yaml
---
sdk: gradio
sdk_version: 4.0.0
suggested_hardware: cpu-basic
suggested_storage: small
---
```
With environment variables:
```
DEFAULT_MODEL=distilgpt2
ENABLE_CACHE=true
```
### GPU Accelerated
```yaml
---
sdk: gradio
sdk_version: 4.0.0
suggested_hardware: t4-small
suggested_storage: medium
---
```
With environment variables:
```
DEFAULT_MODEL=gpt2-medium
ENABLE_CACHE=true
CACHE_MAX_SIZE=200
```
### High Performance
```yaml
---
sdk: gradio
sdk_version: 4.0.0
suggested_hardware: a10g-small
suggested_storage: large
---
```
With environment variables:
```
DEFAULT_MODEL=gpt2-large
ENABLE_CACHE=true
CACHE_MAX_SIZE=500
```
## Advanced Options
### Full-Width Display
```yaml
---
fullWidth: true
---
```
### Mini Header
```yaml
---
header: mini
---
```
### Custom Models/Datasets
```yaml
---
models:
- distilgpt2
- gpt2
datasets:
- your-dataset-name
---
```
### OAuth Integration
```yaml
---
hf_oauth: true
hf_oauth_scopes:
- read-repos
- write-repos
hf_oauth_expiration_minutes: 480
---
```
### Disable Embedding
```yaml
---
disable_embedding: true
---
```
## Environment Variables Reference
These go in Space Settings → Variables, NOT in YAML:
| Variable | Default | Description |
|----------|---------|-------------|
| `ENVIRONMENT` | `production` | Runtime environment |
| `DEBUG` | `false` | Debug mode |
| `LOG_LEVEL` | `INFO` | Logging level |
| `DEFAULT_MODEL` | `distilgpt2` | HuggingFace model ID |
| `MAX_TEXT_LENGTH` | `10000` | Max input characters |
| `ENABLE_CACHE` | `true` | Enable result caching |
| `CACHE_MAX_SIZE` | `100` | Cache entry limit |
| `ENABLE_METRICS` | `false` | Prometheus metrics |
| `LOG_FORMAT` | `text` | Log format (json/text) |
## Troubleshooting
### Configuration Not Applied
1. Check YAML syntax (spaces matter!)
2. Ensure YAML is at top of README.md
3. Must be between `---` delimiters
4. Commit changes and wait for rebuild
### Hardware Not Changed
- `suggested_hardware` is only a suggestion
- Doesn't automatically assign hardware
- Users must manually select tier in Settings
- Useful for Spaces meant to be duplicated
### Environment Variables Not Working
- Set in Settings → Variables (not in YAML)
- May need to restart Space
- Check logs for confirmation
## Best Practices
1. **Start with defaults** - They work well for most cases
2. **Test locally first** - `python app.py`
3. **Use free tier initially** - Upgrade only if needed
4. **Set suggested_hardware** - Helps duplicators
5. **Add descriptive tags** - Improves discoverability
6. **Write good short_description** - Shows in thumbnail
7. **Keep emoji relevant** - Helps users identify your Space
## Resources
- [Official Spaces Config Docs](https://huggingface.co/docs/hub/spaces-config-reference)
- [Gradio Spaces Guide](https://huggingface.co/docs/hub/spaces-sdks-gradio)
- [Hardware Pricing](https://huggingface.co/pricing#spaces)
## Quick Reference
**Minimal Configuration:**
```yaml
---
title: AI Writing Studio
sdk: gradio
app_file: app.py
---
```
**Recommended Configuration:**
```yaml
---
title: AI Writing Studio
emoji: ✍️
sdk: gradio
sdk_version: 4.0.0
app_file: app.py
suggested_hardware: cpu-basic
license: mit
---
```
**Full Configuration:**
See `README_HF_SPACES.md` for complete example.