Spaces:
Running
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
- Configure your assistant using templates or custom settings
- Preview your configuration to test it works
- Generate your deployment package
- Deploy to HuggingFace Spaces
Requirements:
- HuggingFace account (free)
- OpenRouter API key
- Basic understanding of AI assistants

π 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.
Templates & Identity
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)

System Configuration
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

Example Prompts
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
URL Grounding
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

Environment Variables
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


Upload Configuration
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

Preview Your Assistant
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

π³οΈ Step 2: Generate & Deploy
Deployment Package & HuggingFace Space Setup
Package Contents: app.py
(application), requirements.txt
(dependencies), config.json
(configuration), README.md
(overview)
Generate & Create Space
Generate Deployment Package
- Click "π³οΈ Generate Deployment Package" in Configuration tab
- Download the generated ZIP file
- Extract files:
app.py
,config.json
,requirements.txt
,README.md

Create New Space
- Go to huggingface.co/spaces
- Click "Create new Space"
- Name your Space
- Add your preferred licensing (e.g. gpl-3, mit)
- Select Gradio SDK
- Choose Blank template
- Select hardware (CPU Basic is free)
- Click "Create Space"


Upload Files
Upload Project Files
- Navigate to the Files tab in your new Space
- Click "Contribute" β "Upload files"
- Unzip the deployment package
- Select all 4 files from your extracted package:
README.md
app.py
config.json
requirements.txt
- Commit directly to main branch, and your Space will start building


Configure Secrets
Navigate to Settings
- Click the Settings tab in your Space
- Scroll down to Variables and secrets section
- Click New secret
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
Verify & Iterate
Monitor Build Process
- Return to the App tab
- Watch for "Building..." status
- Check build logs for any errors
- Wait 1-3 minutes for completion
- Space will show "Running" when ready
Test Your Deployment
- Try the example prompts
- Test different types of queries
- Verify grounding URLs are working
- Check language responses (if configured)
Iterate Configuration (with HF_TOKEN)
- Go to βοΈ Configuration tab in your Space
- Enter your HF_TOKEN to authenticate
- Modify settings as needed
- Click "Save Configuration"
- Space will automatically rebuild
- Test new configuration
π§ Troubleshooting
Common Issues and Solutions
Find solutions to common problems organized by category.
Build Errors
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
API Errors
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
Access Control Issues
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
Preview Tab Not Working
Preview Issues
- Click "π¬ Preview Configuration" first
- Ensure all required fields are filled
- Try refreshing the page
Configuration Status Shows β
Status Check Failures
- Red X means configuration issue detected
- Usually indicates missing or invalid API key
Resolution Steps
- Verify secret name matches your configuration
- Default is API_KEY, check if you changed it
- Regenerate API key at openrouter.ai/keys
- Update secret in HuggingFace Space settings
- Wait 30 seconds and refresh
π Additional Resources
Documentation Links
HuggingFace
OpenRouter
Gradio
Community Support