Spaces:
Running
A newer version of the Gradio SDK is available: 6.12.0
title: ThoughtSpot Demo Builder
emoji: π
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.44.1
app_file: app.py
pinned: false
license: mit
python_version: '3.11'
Demo Wire - AI-Powered Demo Builder
A powerful Gradio-based application that automatically generates and deploys complete demo environments for ThoughtSpot, including Snowflake schemas, data population, and semantic model creation.
Deployed on Hugging Face Spaces: This app can be deployed to HF Spaces for easy access. See DEPLOYMENT.md for setup instructions.
π Features
- AI-Powered Research: Automatically researches companies and industries using LLM
- Schema Generation: Creates optimized Snowflake DDL based on business context
- Data Population: Generates realistic demo data with strategic outliers
- ThoughtSpot Integration: Deploys connections, tables, and semantic models
- Interactive UI: Clean, intuitive Gradio interface with real-time progress updates
π οΈ Tech Stack
- Frontend: Gradio (Python web UI)
- Backend: Python 3.12+
- Database: Snowflake
- Analytics: ThoughtSpot
- AI: OpenAI GPT models
- Data Generation: Faker library
π Prerequisites
- Python 3.12+
- Snowflake account with appropriate permissions
- ThoughtSpot Cloud account
- OpenAI API key
π Quick Start
Clone the repository
git clone https://github.com/yourusername/demo-wire.git cd demo-wireSet up virtual environment
python -m venv demo_wire source demo_wire/bin/activate # On Windows: demo_wire\Scripts\activateInstall dependencies
pip install -r requirements.txtConfigure environment variables
cp .env.example .env # Edit .env with your credentialsRun the application
python demo_prep.pyOpen your browser Navigate to
http://localhost:7860
βοΈ Configuration
Create a .env file with the following variables:
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Snowflake
SNOWFLAKE_USER=your_username
SNOWFLAKE_PASSWORD=your_password
SNOWFLAKE_ACCOUNT=your_account
SNOWFLAKE_WAREHOUSE=your_warehouse
SNOWFLAKE_DATABASE=your_database
SNOWFLAKE_SCHEMA=your_schema
# ThoughtSpot
THOUGHTSPOT_URL=your_thoughtspot_url
THOUGHTSPOT_USERNAME=your_username
THOUGHTSPOT_PASSWORD=your_password
π― Usage
- Enter Company Information: Company name, URL, and industry
- Start Research: AI analyzes the company and industry
- Create DDL: Generate optimized Snowflake schema
- Generate Data: Create realistic demo data with outliers
- Deploy: Deploy to Snowflake and ThoughtSpot
π Project Structure
demo-wire/
βββ demo_prep.py # Main Gradio application
βββ schema_utils.py # Schema parsing and generation utilities
βββ thoughtspot_deployer.py # ThoughtSpot deployment logic
βββ snowflake_auth.py # Snowflake authentication
βββ demo_personas.py # Demo persona configurations
βββ prompts.py # LLM prompt templates
βββ requirements.txt # Python dependencies
βββ docs/ # Documentation
βββ tests/ # Test files
βββ results/ # Generated demo results
π§ͺ Testing
Run the test suite:
python -m pytest tests/
π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- ThoughtSpot for the analytics platform
- Snowflake for the data warehouse
- OpenAI for the AI capabilities
- Gradio for the web interface
π Development Notes
Development notes and sprint planning are stored in dev_notes/ (not committed to version control).
π Support
For support, email support@demo-wire.com or create an issue in this repository.
Built with β€οΈ for the ThoughtSpot community