Spaces:
Running
Running
File size: 10,752 Bytes
b0c1c7e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 |
# ChatUI Helper Documentation
Welcome to ChatUI Helper! This tool helps you create customizable AI chat interfaces for deployment on HuggingFace Spaces.
## π Quick Start Guide
### Overview
1. **Configure** your assistant using templates or custom settings
2. **Preview** your configuration to test it works
3. **Generate** your deployment package
4. **Deploy** to HuggingFace Spaces
**Requirements:**
- HuggingFace account (free)
- OpenRouter API key
- Basic understanding of AI assistants
<img src="img/march.png" alt="March of Intellect by Robert Seymour" width="500">
<i>"The March of Intellect" by Robert Seymour (c.1828)</i>
---
---
## π Step 1: Configure & Preview Your Space
### Configuration Tab Overview
Configure your assistant through various sections in the Configuration tab, then test it in the Preview tab before generating your deployment package.
<details>
<summary><b>Templates & Identity</b></summary>
**Quick Start Templates**
- Choose from pre-configured academic templates (Socratic Research Chat, STEM Adventure Games, etc.)
- Or select "None (Custom)" for a blank slate
**Space Identity**
- **Assistant Name**: Give your space a memorable name
- **Tagline**: Brief description (max 60 characters) for HuggingFace YAML frontmatter
- **Description**: Full markdown description for the README
- **Theme**: Select from Gradio themes (Default, Soft, Glass, Monochrome, Base)
<img src="img/identity.png" alt="Space Identity Configuration" width="500">
</details>
<details>
<summary><b>System Configuration</b></summary>
**System Prompt**
- Define your assistant's role, context, and behavior
- Set guardrails and creative constraints
- Specify audience and terms of engagement
**Model Selection**
- Choose from available models (Gemini, Claude, GPT, Mistral, etc.)
- Or enter a custom model ID
**Language Support**
- Configure language through system prompt instructions
- Assistant can be instructed to respond exclusively in any language
- See "Language Learning Partner" template for Italian example
**Sampling Parameters**
- **Temperature** (0-2): Controls response variability
- **Max Tokens** (50-4096): Limits response length
<img src="img/instructions.png" alt="System Instructions Configuration" width="600">
</details>
<details>
<summary><b>Example Prompts</b></summary>
**Example Prompts**
- Add 3-5 starter prompts that showcase your assistant's capabilities
- These appear as quick-start buttons for users
- Help users understand how to interact with your assistant
- Use the β/β buttons to add or remove examples
</details>
<details>
<summary><b>URL Grounding</b></summary>
**Grounding URLs**
- Add up to 10 reference URLs to provide context
- **Primary Sources (URLs 1-2)**: Always loaded, up to 8000 characters each
- **Secondary Sources (URLs 3+)**: Supplementary context, up to 2500 characters each
- URLs are fetched and included in the system prompt
- Assistant will cite specific URLs when using grounded information
- Use the β/β buttons to manage URLs
<img src="img/grounding.png" alt="URL Grounding Configuration" width="300">
</details>
<details>
<summary><b>Environment Variables</b></summary>
**Required Secrets**
- **API_KEY** (Required): Your OpenRouter API key (must start with `sk-or-`)
- Get from: https://openrouter.ai/keys
- Configure in HuggingFace Space settings
- **HF_TOKEN** (Recommended): Enables configuration editor in deployed Space
- Get from: https://huggingface.co/settings/tokens
- Select "write" permissions when creating
- Allows updating configuration without redeployment
- **ACCESS_CODE** (Recommended): Password-protect your Space
- Set any password value
- Users will need this code to access
- Leave unset for public access
<img src="img/settings.png" alt="Navigate to Settings" width="500">
<img src="img/add-secret-api.png" alt="Variables and Secrets" width="500">
</details>
<details>
<summary><b>Upload Configuration</b></summary>
**Upload Existing Configuration**
- Have a previous `config.json` file?
- Use the "Upload Configuration" accordion
- Drag and drop or click to upload
- All settings will be restored automatically
<img src="img/upload.png" alt="Upload Configuration" width="500">
</details>
<details>
<summary><b>Preview Your Assistant</b></summary>
**Testing in Preview Tab**
- Click "π¬ Preview Configuration" to prepare your assistant
- Switch to the Preview tab
- Test with real queries and example prompts
- Upload files if file upload is enabled
- Export conversation history as markdown
**Preview Features**
- Real-time API responses (requires API key in environment)
- Grounding context from configured URLs
- Language-specific responses
- Conversation export
<img src="img/preview-config.png" alt="Preview Configuration" width="500">
</details>
---
---
## π³οΈ Step 2: Generate & Deploy
### Deployment Package & HuggingFace Space Setup
**Package Contents:** `app.py` (application), `requirements.txt` (dependencies), `config.json` (configuration), `README.md` (overview)
<details>
<summary><b>Generate & Create Space</b></summary>
**Generate Deployment Package**
1. Click "π³οΈ Generate Deployment Package" in Configuration tab
2. Download the generated ZIP file
3. Extract files: `app.py`, `config.json`, `requirements.txt`, `README.md`
<img src="img/deployment.png" alt="Deployment Package" width="500">
**Create New Space**
1. Go to [huggingface.co/spaces](https://huggingface.co/spaces)
2. Click "Create new Space"
3. Name your Space
4. Add your preferred licensing (e.g. gpl-3, mit)
5. Select **Gradio** SDK
6. Choose **Blank** template
7. Select hardware (CPU Basic is free)
8. Click "Create Space"
<img src="img/create-space.png" alt="Click Create Space" width="500">
<img src="img/space.png" alt="Deployed Space" width="500">
</details>
<details>
<summary><b>Upload Files</b></summary>
**Upload Project Files**
1. Navigate to the **Files** tab in your new Space
2. Click "Contribute" β "Upload files"
3. Unzip the deployment package
4. Select all 4 files from your extracted package:
- `README.md`
- `app.py`
- `config.json`
- `requirements.txt`
5. Commit directly to main branch, and your Space will start building
<img src="img/drop-files.png" alt="Drag and drop files" width="500">
<img src="img/uploading.png" alt="Commit files to space" width="500">
</details>
<details>
<summary><b>Configure Secrets</b></summary>
**Navigate to Settings**
1. Click the **Settings** tab in your Space
<img src="img/settings.png" alt="Navigate to settings" width="500">
2. Scroll down to **Variables and secrets** section
3. Click **New secret**
<img src="img/add-secret-api.png" alt="Adding API Key Secret" width="500">
**Add Required Secret**
- **Name**: `API_KEY` (or your configured variable name)
- **Value**: Your OpenRouter API key
- Must start with `sk-or-`
**Add Optional Secrets (if desired)**
- **HF_TOKEN**: Your HuggingFace token with write permissions
- Enables the configuration editor in your Space
- Get from: https://huggingface.co/settings/tokens
- **ACCESS_CODE**: Any password value
- Restricts access to authorized users
- Do NOT set an empty value
- Either set a code or don't create the secret
</details>
<details>
<summary><b>Verify & Iterate</b></summary>
**Monitor Build Process**
1. Return to the **App** tab
2. Watch for "Building..." status
3. Check build logs for any errors
4. Wait 1-3 minutes for completion
5. Space will show "Running" when ready
**Test Your Deployment**
1. Try the example prompts
2. Test different types of queries
3. Verify grounding URLs are working
4. Check language responses (if configured)
**Iterate Configuration (with HF_TOKEN)**
1. Go to βοΈ Configuration tab in your Space
2. Enter your HF_TOKEN to authenticate
3. Modify settings as needed
4. Click "Save Configuration"
5. Space will automatically rebuild
6. Test new configuration
</details>
---
---
## π§ Troubleshooting
### Common Issues and Solutions
Find solutions to common problems organized by category.
<details>
<summary><b>Build Errors</b></summary>
**Requirements Compatibility**
- Ensure Gradio version β₯ 5.39.0 in requirements.txt
- Check all dependencies are spelled correctly
- Verify version numbers are compatible
**Common Build Failures**
- Missing dependencies: Add to requirements.txt
- Import errors: Check module names and casing
- Syntax errors: Review app.py for Python syntax issues
</details>
<details>
<summary><b>API Errors</b></summary>
**API Key Issues**
- Verify API_KEY is set in HuggingFace Secrets
- Ensure key starts with 'sk-or-' for OpenRouter
- Check for extra spaces or quotes in the secret value
**API Response Errors**
- 401 Unauthorized: Invalid API key
- 402 Payment Required: No API credits remaining
- 429 Rate Limited: Too many requests, wait and retry
- 500 Server Error: OpenRouter service issue
</details>
<details>
<summary><b>Access Control Issues</b></summary>
**ACCESS_CODE Problems**
- Code must match exactly (case-sensitive)
- Don't include quotes around the password
- Check for trailing spaces in the secret
- To disable: Delete the ACCESS_CODE secret entirely
**Authentication Flow**
- Users enter code on first visit
- Code is stored in browser session
- Clear cookies to re-prompt for code
</details>
<details>
<summary><b>Preview Tab Not Working</b></summary>
**Preview Issues**
- Click "π¬ Preview Configuration" first
- Ensure all required fields are filled
- Try refreshing the page
</details>
<details>
<summary><b>Configuration Status Shows β</b></summary>
**Status Check Failures**
- Red X means configuration issue detected
- Usually indicates missing or invalid API key
**Resolution Steps**
1. Verify secret name matches your configuration
2. Default is API_KEY, check if you changed it
3. Regenerate API key at openrouter.ai/keys
4. Update secret in HuggingFace Space settings
5. Wait 30 seconds and refresh
</details>
---
---
## π Additional Resources
### Documentation Links
**HuggingFace**
- [Spaces Overview](https://huggingface.co/docs/hub/spaces-overview)
- [Gradio on Spaces](https://huggingface.co/docs/hub/spaces-gradio)
- [Environment Variables](https://huggingface.co/docs/hub/spaces-overview#managing-secrets)
**OpenRouter**
- [API Keys](https://openrouter.ai/keys)
- [Model Comparison](https://openrouter.ai/models)
- [Pricing](https://openrouter.ai/docs#models)
**Gradio**
- [Chat Interface](https://gradio.app/docs/chatinterface)
- [Components](https://gradio.app/docs/)
- [Sharing Apps](https://gradio.app/sharing-your-app/)
**Community Support**
- [HuggingFace Forums](https://discuss.huggingface.co/)
- [Gradio Discord](https://discord.gg/feTf9x3ZSB)
</details> |