A newer version of the Gradio SDK is available:
									5.49.1
Shasha AI β Architecture Overview
A highβlevel view of the components and data flow in the Shasha AI codeβgeneration platform.
1. Core Layers
1.1 Frontend (Gradio UI)
- app.py: Defines the Gradio Blocks UI β input panels (prompt, file, website, image), model selector, language selector, buttons, and output panes (Code, Preview, History).
- static/: Holds index.html,index.js,style.cssfor any transformers.js demos and custom styling.
- assets/: Images, logos, and other static assets.
1.2 Backend Services
1.2.1 Inference Routing
- hf_client.py - get_inference_client(model_id, provider)
- Wraps HF/OpenAI/Gemini/Groq providers into a unified interface.
- Automatically selects/falls back based on model prefix and available credentials.
 
- inference.py - chat_completion(...)and- stream_chat_completion(...)
- Encapsulates request/response logic, streaming vs. blocking, and error handling.
 
1.2.2 Model Registry
- models.py  - ModelInfodataclass &- AVAILABLE_MODELSregistry
- Central source of truth for supported models, identifiers, descriptions, and default providers.
- Helper find_model()for lookup by name or ID.
 
1.2.3 Prompt & History Management
- constants.py  - System prompts for HTML/transformers.js modes, search/replace tokens, Gradio language support.
 
- utils.py  - history_to_messages(),- remove_code_block(), multimodal image encoding, parsing transformers.js outputs, search/replace utilities.
 
1.2.4 Deployment & Project Import
- deploy.py  - send_to_sandbox()β live HTML preview in iframe
- load_project_from_url()β import existing HF Spaces (app.py/index.html)
- deploy_to_spaces*()β create/update HF Space via Hub API
 
2. Extensions & Plugins
- plugins.py (future) - Plugin discovery/loading for communityβcreated extensions (e.g., DB runners, snippet libraries).
 
- auth.py (future) - OAuth flows for GitHub, Google Drive, Slack β enable private file loading.
 
3. Project Structure
. βββ app.py # Gradio application βββ constants.py # System prompts & appβwide constants βββ hf_client.py # Inference client factory βββ models.py # Model registry & metadata βββ inference.py # Chat completion wrappers βββ utils.py # Helpers: history, code parsing, multimodal βββ deploy.py # Sandbox preview & HF Spaces import/deploy βββ plugins.py # (planned) Plugin architecture βββ auth.py # (planned) OAuth integrations βββ notebooks/ # Demo Jupyter notebooks βββ tests/ # pytest suites & UI smoke tests βββ ci.yaml # CI pipeline for lint/test/deploy βββ docs/ β βββ QUICKSTART.md β βββ ARCHITECTURE.md β βββ API_REFERENCE.md βββ static/ # transformers.js demos & CSS/JS assets
yaml Copy Edit
4. Data Flow
- User Interaction: User enters prompt / uploads file / selects model & language.
- Preprocessing:  - File β extract_text_from_file()
- Website β extract_website_content()
- Image β process_image_for_model()
 
- File β 
- Message Assembly:  - System prompt + history β OpenAIβstyle message list
- Enhanced via optional web search (Tavily)
 
- Inference Call:  - get_inference_client()β select provider & billing
- chat_completion()or streaming
 
- Postprocessing:  - Parse code blocks / transformers.js multiβfile output
- Apply search/replace to existing code if editing
 
- UI Update:  - Code pane
- Live preview iframe (send_to_sandbox)
- Chat history pane
 
