| | import gradio as gr |
| | from huggingface_hub import InferenceClient |
| | import os |
| | from datetime import datetime |
| |
|
| | |
| | from prompts import ( |
| | SEARCH_START, DIVIDER, REPLACE_END, |
| | TITLE_PAGE_START, TITLE_PAGE_END, |
| | NEW_PAGE_START, NEW_PAGE_END, |
| | UPDATE_PAGE_START, UPDATE_PAGE_END, |
| | WEB_DEV_QUESTIONS, PROMPT_FOR_IMAGE_GENERATION, |
| | INITIAL_SYSTEM_PROMPT, FOLLOW_UP_SYSTEM_PROMPT, |
| | PROMPT_ENGINEER_SYSTEM_PROMPT, SUGGESTED_ANSWERS, |
| | HTML_TEMPLATE_EXAMPLE, CDN_LINKS, |
| | AVAILABLE_MODELS, DEFAULT_MODEL |
| | ) |
| |
|
| | |
| | client = InferenceClient(token=os.getenv("HF_TOKEN")) |
| |
|
| | class WebsitePromptEnhancer: |
| | def __init__(self): |
| | self.context = [] |
| | self.current_question_idx = 0 |
| | self.user_responses = {} |
| | self.initial_prompt = "" |
| | self.is_update = False |
| | |
| | def reset(self): |
| | self.context = [] |
| | self.current_question_idx = 0 |
| | self.user_responses = {} |
| | self.initial_prompt = "" |
| | self.is_update = False |
| | |
| | def start_enhancement(self, initial_prompt): |
| | self.reset() |
| | self.initial_prompt = initial_prompt |
| | self.current_question_idx = 0 |
| | return self.get_next_question() |
| | |
| | def get_next_question(self): |
| | if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| | return WEB_DEV_QUESTIONS[self.current_question_idx] |
| | return None |
| | |
| | def get_suggested_answer(self): |
| | """Generate suggested answer based on context""" |
| | if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| | return SUGGESTED_ANSWERS.get(self.current_question_idx, "") |
| | return "" |
| | |
| | def process_answer(self, answer): |
| | if self.current_question_idx < len(WEB_DEV_QUESTIONS): |
| | question = WEB_DEV_QUESTIONS[self.current_question_idx] |
| | self.user_responses[question] = answer |
| | self.context.append(f"Q: {question}\nA: {answer}") |
| | |
| | |
| | if self.current_question_idx == len(WEB_DEV_QUESTIONS) - 1: |
| | if "update" in answer.lower() or "modify" in answer.lower() or "change" in answer.lower(): |
| | self.is_update = True |
| | |
| | self.current_question_idx += 1 |
| | |
| | next_q = self.get_next_question() |
| | return next_q |
| | |
| | def generate_enhanced_prompt(self, model_name=DEFAULT_MODEL): |
| | |
| | website_type = self.user_responses.get(WEB_DEV_QUESTIONS[0], "website") |
| | purpose = self.user_responses.get(WEB_DEV_QUESTIONS[1], "general purpose") |
| | audience = self.user_responses.get(WEB_DEV_QUESTIONS[2], "general audience") |
| | sections = self.user_responses.get(WEB_DEV_QUESTIONS[3], "Home, About, Contact") |
| | color_scheme = self.user_responses.get(WEB_DEV_QUESTIONS[4], "modern and professional") |
| | features = self.user_responses.get(WEB_DEV_QUESTIONS[5], "responsive design") |
| | update_type = self.user_responses.get(WEB_DEV_QUESTIONS[6], "new website") |
| | |
| | |
| | is_update = "update" in update_type.lower() or "modify" in update_type.lower() |
| | |
| | enhancement_prompt = f"""Create a detailed prompt for an AI code agent to build a professional website based on these requirements: |
| | |
| | Project: {self.initial_prompt} |
| | Type: {website_type} |
| | Purpose: {purpose} |
| | Target Audience: {audience} |
| | Required Sections/Pages: {sections} |
| | Design Theme: {color_scheme} |
| | Features: {features} |
| | Request Type: {"Update existing website" if is_update else "Create new website"} |
| | |
| | Generate a comprehensive, production-ready specification following the AI code agent format. |
| | The output should be a clean prompt (no Q&A) that includes: |
| | 1. Clear project description |
| | 2. Required pages/sections with specific details |
| | 3. Design specifications (colors, layout, typography) |
| | 4. Feature requirements with implementation details |
| | 5. Technical stack specifications (TailwindCSS, Feather Icons, AOS, Vanta.js) |
| | 6. Responsive design requirements |
| | 7. Accessibility guidelines |
| | 8. Image placeholder usage (static.photos) |
| | |
| | The prompt should be ready to paste directly into an AI code agent system.""" |
| |
|
| | try: |
| | messages = [ |
| | {"role": "system", "content": PROMPT_ENGINEER_SYSTEM_PROMPT}, |
| | {"role": "user", "content": enhancement_prompt} |
| | ] |
| | |
| | response = client.chat_completion( |
| | messages=messages, |
| | model=model_name, |
| | max_tokens=3000, |
| | temperature=0.7, |
| | stream=False |
| | ) |
| | |
| | enhanced_prompt = response.choices[0].message.content |
| | return self._format_for_code_agent(enhanced_prompt, is_update) |
| | |
| | except Exception as e: |
| | try: |
| | full_prompt = f"{PROMPT_ENGINEER_SYSTEM_PROMPT}\n\n{enhancement_prompt}" |
| | response = client.text_generation( |
| | full_prompt, |
| | model=model_name, |
| | max_new_tokens=3000, |
| | temperature=0.7, |
| | return_full_text=False |
| | ) |
| | return self._format_for_code_agent(response, is_update) |
| | except Exception as e2: |
| | return self._create_fallback_prompt( |
| | website_type, purpose, audience, sections, |
| | color_scheme, features, is_update |
| | ) |
| | |
| | def _format_for_code_agent(self, prompt, is_update=False): |
| | """Format the prompt to work with the AI code agent system""" |
| | |
| | formatted_prompt = f"""# AI Code Agent Prompt - Website Generation |
| | |
| | {prompt} |
| | |
| | --- |
| | |
| | ## Technical Requirements for AI Code Agent |
| | |
| | ### Technology Stack |
| | - **CSS Framework:** TailwindCSS (CDN: {CDN_LINKS['tailwind']}) |
| | - **Icons:** Feather Icons ({CDN_LINKS['feather_icons']}) |
| | - **Scroll Animations:** AOS.js ({CDN_LINKS['aos_css']}) |
| | - **Interactive Animations:** Vanta.js ({CDN_LINKS['vanta_globe']}) |
| | - **Additional:** Anime.js for advanced animations |
| | |
| | ### Image Placeholders |
| | {PROMPT_FOR_IMAGE_GENERATION} |
| | |
| | ### Output Format Instructions |
| | {"**For Updates/Modifications:**" if is_update else "**For New Website:**"} |
| | |
| | {'Use the UPDATE_PAGE format:' if is_update else 'Use the TITLE_PAGE format:'}""" |
| |
|
| | if is_update: |
| | formatted_prompt += f""" |
| | 1. Start with: {UPDATE_PAGE_START} |
| | 2. Specify the page name (e.g., index.html) |
| | 3. Close with: {UPDATE_PAGE_END} |
| | 4. Use SEARCH/REPLACE blocks: |
| | - {SEARCH_START} |
| | - (exact code to replace) |
| | - {DIVIDER} |
| | - (new code) |
| | - {REPLACE_END} |
| | |
| | For new pages during update: |
| | 1. Start with: {NEW_PAGE_START} |
| | 2. Specify page name (e.g., about.html) |
| | 3. Close with: {NEW_PAGE_END} |
| | 4. Provide complete HTML in ```html``` blocks |
| | 5. Update navigation links in all existing pages""" |
| | else: |
| | formatted_prompt += f""" |
| | 1. Start with: {TITLE_PAGE_START} |
| | 2. Add page name (e.g., index.html) |
| | 3. Close with: {TITLE_PAGE_END} |
| | 4. Provide complete HTML in ```html``` blocks |
| | 5. First file must be index.html |
| | 6. Include all required CDN links in <head> |
| | 7. Initialize all libraries in <body>""" |
| |
|
| | formatted_prompt += f""" |
| | |
| | ### Required Code Structure |
| | |
| | **Every HTML file must include:** |
| | |
| | ```html |
| | {HTML_TEMPLATE_EXAMPLE} |
| | ``` |
| | |
| | ### Design Guidelines |
| | - Mobile-first responsive design using TailwindCSS |
| | - Use semantic HTML5 elements |
| | - Implement smooth scroll animations with AOS |
| | - Add interactive animations where appropriate (Vanta.js) |
| | - Use Feather icons for all icons: <i data-feather="icon-name"></i> |
| | - Ensure accessibility (ARIA labels, semantic tags) |
| | - Cross-browser compatibility |
| | - Performance optimized |
| | |
| | ### Navigation |
| | - For multi-page websites: Use <a href="page.html"> (no onclick) |
| | - Ensure all pages have consistent navigation |
| | - Mobile-responsive hamburger menu |
| | |
| | ### Ready for AI Code Agent |
| | This prompt is formatted for direct use with AI code agents. |
| | Simply paste it into your AI coding assistant to generate the website.""" |
| | return formatted_prompt |
| |
|
| | def _create_fallback_prompt(self, website_type, purpose, audience, sections, color_scheme, features, is_update=False): |
| | """Create a detailed fallback prompt in code agent format""" |
| | |
| | sections_list = [s.strip() for s in sections.split(',')] |
| | |
| | fallback = f"""# AI Code Agent Prompt - Professional Website Project Overview |
| | Create a professional {website_type} website optimized for {audience}. |
| | |
| | Primary Goal: {purpose} |
| | |
| | Design Theme: {color_scheme} with modern UI/UX |
| | |
| | Required Pages/Sections |
| | """ |
| | for i, section in enumerate(sections_list, 1): |
| | fallback += f"{i}. **{section.strip()}** - Complete page with relevant content\n" |
| | |
| | fallback += f"""Feature Requirements |
| | {features} |
| | |
| | Core Features: |
| | β
Fully responsive design (mobile, tablet, desktop) |
| | β
Smooth scroll animations using AOS.js |
| | β
Modern icons using Feather Icons |
| | β
Interactive animations with Vanta.js (hero section) |
| | β
TailwindCSS for all styling |
| | β
Contact forms with validation (if applicable) |
| | β
Image galleries with lightbox effect |
| | β
Smooth navigation with active states |
| | β
Loading animations and transitions |
| | β
Accessibility compliant (WCAG 2.1) |
| | |
| | ## Technology Stack |
| | ### Required Libraries (CDN) |
| | <!-- TailwindCSS --> |
| | <script src="{CDN_LINKS['tailwind']}"></script> |
| | |
| | <!-- AOS Scroll Animations --> |
| | <link href="{CDN_LINKS['aos_css']}" rel="stylesheet"> |
| | <script src="{CDN_LINKS['aos_js']}"></script> |
| | |
| | <!-- Feather Icons --> |
| | <script src="{CDN_LINKS['feather_icons_min']}"></script> |
| | <script src="{CDN_LINKS['feather_icons']}"></script> |
| | |
| | <!-- Anime.js --> |
| | <script src="{CDN_LINKS['anime_js']}"></script> |
| | |
| | <!-- Vanta.js (for hero backgrounds) --> |
| | <script src="{CDN_LINKS['vanta_globe']}"></script> |
| | |
| | ## Design Specifications |
| | ### Color Scheme |
| | Primary theme: {color_scheme} |
| | |
| | Suggested TailwindCSS Colors: |
| | - Primary: bg-blue-600, text-blue-600 |
| | - Secondary: bg-gray-800, text-gray-800 |
| | - Accent: bg-purple-500, text-purple-500 |
| | - Background: bg-white, bg-gray-50 |
| | - Text: text-gray-900, text-gray-600 |
| | |
| | ### Typography |
| | - Headings: Bold, large (text-4xl, text-5xl, font-bold) |
| | - Body: Readable size (text-base, text-lg) |
| | - Use TailwindCSS typography utilities |
| | |
| | ### Layout Structure |
| | - Header: Fixed/sticky navigation with logo and menu |
| | - Hero Section: Full-screen with Vanta.js background animation |
| | - Content Sections: Alternating layouts with AOS animations |
| | - Footer: Links, social media, copyright |
| | |
| | ### Responsive Breakpoints |
| | - Mobile: sm: (640px) |
| | - Tablet: md: (768px) |
| | - Desktop: lg: (1024px) |
| | - Large: xl: (1280px) |
| | |
| | ### Image Guidelines |
| | Use Static.Photos for Placeholders |
| | {PROMPT_FOR_IMAGE_GENERATION} |
| | |
| | Recommended Usage: |
| | - Hero images: http://static.photos/abstract/1200x630/1 |
| | - Portfolio/Gallery: http://static.photos/technology/640x360/[1-10] |
| | - Team photos: http://static.photos/people/320x240/[1-5] |
| | - Background images: http://static.photos/minimal/1024x576/42 |
| | |
| | ### Animation Requirements |
| | #### AOS Scroll Animations |
| | Use on all major sections: |
| | <div data-aos="fade-up" data-aos-duration="1000"> |
| | Content here |
| | </div> |
| | Available Effects: fade-up, fade-down, fade-left, fade-right, zoom-in, flip-up |
| | |
| | #### Vanta.js Hero Background |
| | Implement on hero section: |
| | <script> |
| | VANTA.GLOBE({{ |
| | el: "#hero", |
| | mouseControls: true, |
| | touchControls: true, |
| | gyroControls: false, |
| | minHeight: 200.00, |
| | minWidth: 200.00, |
| | scale: 1.00, |
| | scaleMobile: 1.00, |
| | color: 0x3b82f6, |
| | backgroundColor: 0x0f172a |
| | }}) |
| | </script> |
| | |
| | #### Feather Icons Usage |
| | <i data-feather="menu"></i> |
| | <i data-feather="mail"></i> |
| | <i data-feather="phone"></i> |
| | <i data-feather="github"></i> |
| | |
| | ### Code Structure Format |
| | {"Update Format (Modifying Existing Pages)" if is_update else "New Website Format"} |
| | {"Use UPDATE_PAGE blocks:" if is_update else "Use TITLE_PAGE blocks:"}""" |
| |
|
| | if is_update: |
| | fallback += f""" |
| | {UPDATE_PAGE_START}index.html{UPDATE_PAGE_END} |
| | |
| | {SEARCH_START} |
| | <h1>Old Title</h1> |
| | {DIVIDER} |
| | <h1 class="text-4xl font-bold text-blue-600">New Title</h1> |
| | {REPLACE_END} |
| | |
| | For adding new pages: |
| | {NEW_PAGE_START}about.html{NEW_PAGE_END} |
| | ```html |
| | {HTML_TEMPLATE_EXAMPLE} |
| | ```""" |
| | else: |
| | fallback += f""" |
| | {TITLE_PAGE_START}index.html{TITLE_PAGE_END} |
| | ```html |
| | {HTML_TEMPLATE_EXAMPLE} |
| | ```""" |
| | |
| | fallback += """ |
| | ## Quality Standards |
| | ### Code Quality |
| | - Clean, well-commented code |
| | - Proper indentation and formatting |
| | - Semantic HTML5 elements |
| | - Modular CSS with TailwindCSS utilities |
| | - Efficient JavaScript |
| | |
| | ### Accessibility |
| | - ARIA labels on interactive elements |
| | - Alt text on all images |
| | - Proper heading hierarchy (h1-h6) |
| | - Keyboard navigation support |
| | - Sufficient color contrast |
| | |
| | ### Performance |
| | - Optimized images |
| | - Minified assets where possible |
| | - Efficient animations |
| | - Fast loading times (<3 seconds) |
| | - Mobile-optimized |
| | |
| | ### Browser Compatibility |
| | - Chrome, Firefox, Safari, Edge (latest 2 versions) |
| | - iOS Safari and Chrome Mobile |
| | - Graceful degradation for older browsers |
| | |
| | ## Deliverable |
| | Create a complete, production-ready website that: |
| | β
Follows all format requirements for the AI code agent |
| | β
Includes all specified pages/sections |
| | β
Uses TailwindCSS for ALL styling |
| | β
Implements animations (AOS, Vanta.js) |
| | β
Uses Feather Icons for all icons |
| | β
Uses static.photos for all images |
| | β
Is fully responsive (mobile-first) |
| | β
Is accessible (WCAG 2.1 AA) |
| | β
Has clean, professional code |
| | β
Is ready for immediate deployment |
| | |
| | Generate the complete website code now following the format specified above.""" |
| | return fallback |
| |
|
| | |
| | enhancer = WebsitePromptEnhancer() |
| |
|
| | |
| | def submit_answer(answer): |
| | if not answer.strip(): |
| | return ( |
| | "", |
| | "", |
| | "", |
| | gr.update(interactive=False), |
| | gr.update(interactive=False), |
| | gr.update(visible=False), |
| | "β οΈ Please enter your initial website idea first!", |
| | "", |
| | gr.update(visible=False) |
| | ) |
| | |
| | next_question = enhancer.process_answer(answer) |
| |
|
| | if next_question: |
| | suggestion = enhancer.get_suggested_answer() |
| | return ( |
| | next_question, |
| | suggestion, |
| | "", |
| | gr.update(interactive=True), |
| | gr.update(interactive=True), |
| | gr.update(visible=False), |
| | f"β
Progress: {enhancer.current_question_idx}/{len(WEB_DEV_QUESTIONS)} questions answered", |
| | "", |
| | gr.update(visible=False) |
| | ) |
| | else: |
| | return ( |
| | "π All questions completed! Click 'Generate Enhanced Prompt' below.", |
| | "", |
| | "", |
| | gr.update(interactive=False), |
| | gr.update(interactive=False), |
| | gr.update(visible=True), |
| | "β
All questions answered! Ready to generate your AI Code Agent prompt.", |
| | "", |
| | gr.update(visible=False) |
| | ) |
| |
|
| | def start_process(initial_prompt): |
| | if not initial_prompt.strip(): |
| | return ( |
| | "", |
| | "", |
| | "", |
| | gr.update(interactive=False), |
| | gr.update(interactive=False), |
| | gr.update(visible=False), |
| | "β οΈ Please enter your initial website idea first!", |
| | "", |
| | gr.update(visible=False) |
| | ) |
| | |
| | next_question = enhancer.start_enhancement(initial_prompt) |
| | suggestion = enhancer.get_suggested_answer() |
| | |
| | return ( |
| | next_question, |
| | suggestion, |
| | "", |
| | gr.update(interactive=True), |
| | gr.update(interactive=True), |
| | gr.update(visible=False), |
| | f"β
Progress: {enhancer.current_question_idx}/{len(WEB_DEV_QUESTIONS)} questions answered", |
| | "", |
| | gr.update(visible=False) |
| | ) |
| |
|
| | def generate_final_prompt(model_choice): |
| | try: |
| | status_msg = "π Generating AI Code Agent prompt... Please wait." |
| | yield "", status_msg, gr.update(visible=False) |
| | enhanced = enhancer.generate_enhanced_prompt(model_choice) |
| | |
| | yield enhanced, "β
AI Code Agent prompt generated! Copy and paste into your AI code agent to generate the website.", gr.update(visible=True) |
| | except Exception as e: |
| | yield f"Error: {str(e)}", "β Generation failed. Please try again or use a different model.", gr.update(visible=False) |
| |
|
| | def save_prompt_to_file(prompt_text): |
| | """Save the prompt to a text file and return the file path""" |
| | if not prompt_text or prompt_text.strip() == "": |
| | return None |
| | timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") |
| | filename = f"ai_code_agent_prompt_{timestamp}.txt" |
| |
|
| | with open(filename, "w", encoding="utf-8") as f: |
| | f.write("=" * 80 + "\n") |
| | f.write("AI CODE AGENT - WEBSITE DEVELOPMENT PROMPT\n") |
| | f.write(f"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") |
| | f.write("=" * 80 + "\n\n") |
| | f.write(prompt_text) |
| | f.write("\n\n" + "=" * 80 + "\n") |
| | f.write("Paste this prompt into your AI Code Agent to generate the website\n") |
| | f.write("Compatible with: Custom AI Code Agents, Cursor, Bolt.new, v0.dev, etc.\n") |
| | f.write("=" * 80 + "\n") |
| |
|
| | return filename |
| |
|
| | |
| | custom_css = """ |
| | .container {max-width: 1200px; margin: auto; padding: 20px;} |
| | .header { |
| | text-align: center; |
| | margin-bottom: 30px; |
| | background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| | padding: 30px; |
| | border-radius: 15px; |
| | color: white; |
| | } |
| | .question-box { |
| | background: #f0f7ff; |
| | padding: 20px; |
| | border-radius: 10px; |
| | margin: 10px 0; |
| | border-left: 4px solid #667eea; |
| | } |
| | .status-box { |
| | background: #e8f5e9; |
| | padding: 15px; |
| | border-radius: 8px; |
| | margin: 10px 0; |
| | font-weight: 500; |
| | } |
| | .suggestion-box { |
| | background: #fff3e0; |
| | padding: 10px; |
| | border-radius: 5px; |
| | font-size: 0.9em; |
| | color: #e65100; |
| | } |
| | .download-btn { |
| | background: #4CAF50 !important; |
| | } |
| | .code-agent-badge { |
| | background: #667eea; |
| | color: white; |
| | padding: 5px 15px; |
| | border-radius: 20px; |
| | font-size: 0.85em; |
| | display: inline-block; |
| | margin: 5px; |
| | } |
| | """ |
| |
|
| | |
| | with gr.Blocks(css=custom_css, theme=gr.themes.Soft(), title="AI Code Agent Prompt Enhancer") as demo: |
| | gr.Markdown(""" |
| | # π AI Code Agent Prompt Enhancer |
| | ### Transform Ideas into Professional AI Code Agent Prompts |
| | Generate detailed, production-ready prompts optimized for AI code agent systems. |
| | |
| | <div style="text-align: center; margin: 10px 0;"> |
| | <span class="code-agent-badge">β¨ TailwindCSS</span> |
| | <span class="code-agent-badge">π¨ Feather Icons</span> |
| | <span class="code-agent-badge">π± AOS Animations</span> |
| | <span class="code-agent-badge">π Vanta.js</span> |
| | <span class="code-agent-badge">πΌοΈ Static.photos</span> |
| | </div> |
| | """, elem_classes="header") |
| |
|
| | with gr.Row(): |
| | with gr.Column(scale=2): |
| | initial_prompt = gr.Textbox( |
| | label="π‘ Your Website Idea", |
| | placeholder="Example: 'Create a modern portfolio website for a photographer with gallery and contact form'", |
| | lines=3, |
| | info="Describe what kind of website you want to create" |
| | ) |
| | with gr.Column(scale=1): |
| | start_btn = gr.Button( |
| | "π― Start Enhancement", |
| | variant="primary", |
| | size="lg" |
| | ) |
| |
|
| | status_text = gr.Markdown("π Enter your idea above and click 'Start Enhancement'", elem_classes="status-box") |
| |
|
| | gr.Markdown("---") |
| |
|
| | with gr.Row(): |
| | with gr.Column(): |
| | current_question = gr.Textbox( |
| | label="β Current Question", |
| | interactive=False, |
| | lines=2, |
| | elem_classes="question-box" |
| | ) |
| | |
| | suggestion_text = gr.Textbox( |
| | label="π Suggestion", |
| | interactive=False, |
| | lines=2, |
| | elem_classes="suggestion-box" |
| | ) |
| | |
| | answer_input = gr.Textbox( |
| | label="βοΈ Your Answer", |
| | placeholder="Type your answer here...", |
| | lines=4, |
| | interactive=False |
| | ) |
| | |
| | submit_btn = gr.Button( |
| | "Submit Answer β‘οΈ", |
| | interactive=False, |
| | variant="primary" |
| | ) |
| |
|
| | gr.Markdown("---") |
| |
|
| | with gr.Row(): |
| | model_choice = gr.Dropdown( |
| | choices=AVAILABLE_MODELS, |
| | value=DEFAULT_MODEL, |
| | label="π€ Select AI Model", |
| | info="Choose the model for prompt generation" |
| | ) |
| |
|
| | generate_btn = gr.Button( |
| | "β¨ Generate AI Code Agent Prompt", |
| | variant="primary", |
| | size="lg", |
| | visible=False |
| | ) |
| |
|
| | enhanced_output = gr.Textbox( |
| | label="π¨ AI Code Agent Prompt (Ready to Use)", |
| | lines=30, |
| | show_copy_button=True, |
| | placeholder="Your AI code agent prompt will appear here...", |
| | info="Copy this prompt and paste it into your AI code agent system" |
| | ) |
| |
|
| | download_btn = gr.File( |
| | label="π₯ Download Prompt as Text File", |
| | visible=False |
| | ) |
| |
|
| | gr.Markdown(""" |
| | --- |
| | ## π How to Use |
| | |
| | ### Step 1: Create Your Prompt |
| | 1. **Enter Your Idea** - Describe your website concept |
| | 2. **Answer Questions** - Respond to guided questions (7 total) |
| | 3. **Generate Prompt** - Click to create your AI code agent prompt |
| | 4. **Download/Copy** - Save or copy the generated prompt |
| | |
| | ### Step 2: Use with AI Code Agent |
| | 1. **Copy the generated prompt** |
| | 2. **Paste into your AI code agent** (Cursor, Bolt.new, v0.dev, custom agents) |
| | 3. **Get production-ready code** with proper formatting |
| | |
| | --- |
| | |
| | ## π― What You Get |
| | |
| | β
**Clean, Professional Prompt** - No Q&A clutter, just specifications |
| | β
**AI Code Agent Format** - Uses TITLE_PAGE, UPDATE_PAGE, SEARCH/REPLACE blocks |
| | β
**TailwindCSS Integration** - Modern, responsive styling |
| | β
**Animation Ready** - AOS scroll animations + Vanta.js backgrounds |
| | β
**Icon System** - Feather Icons integrated |
| | β
**Image Placeholders** - Static.photos for all images |
| | β
**Production Ready** - Complete technical specifications |
| | β
**Downloadable** - Save for future use |
| | |
| | --- |
| | |
| | ## π§ Compatible Systems |
| | |
| | This tool generates prompts compatible with: |
| | - β¨ **Custom AI Code Agents** (using the TITLE_PAGE/UPDATE_PAGE format) |
| | - β¨ **Cursor AI** - Paste and generate |
| | - β¨ **Bolt.new** - Direct integration |
| | - β¨ **v0.dev** - Component generation |
| | - β¨ **GitHub Copilot** - Enhanced context |
| | - β¨ **Any LLM** - ChatGPT, Claude, Gemini |
| | |
| | --- |
| | |
| | ## π Output Format |
| | |
| | The generated prompts use a specific format for AI code agents: |
| | |
| | ### For New Websites: |
| | ``` |
| | <<<<<<< START_TITLE index.html >>>>>>> END_TITLE |
| | ```html |
| | <!DOCTYPE html> |
| | ...complete HTML code... |
| | ``` |
| | ``` |
| | |
| | ### For Updates: |
| | ``` |
| | <<<<<<< UPDATE_PAGE_START index.html >>>>>>> UPDATE_PAGE_END |
| | <<<<<<< SEARCH |
| | <h1>Old Content</h1> |
| | ======= |
| | <h1 class="text-4xl font-bold">New Content</h1> |
| | >>>>>>> REPLACE |
| | ``` |
| | |
| | --- |
| | |
| | ## π‘ Pro Tips |
| | |
| | - π Be specific in your answers for better results |
| | - π¨ Mention preferred colors, styles, and layouts |
| | - π± Specify if you need mobile-first design |
| | - π Indicate if updating existing code or creating new |
| | - β‘ The more detail you provide, the better the output |
| | |
| | --- |
| | |
| | ## π οΈ Technical Stack Included |
| | |
| | Every generated prompt includes: |
| | - **TailwindCSS** - Utility-first CSS framework |
| | - **Feather Icons** - Beautiful icon set |
| | - **AOS.js** - Scroll animation library |
| | - **Vanta.js** - Animated backgrounds |
| | - **Anime.js** - Advanced animations |
| | - **Static.photos** - Professional placeholder images |
| | |
| | --- |
| | |
| | Made with β€οΈ for developers | Optimized for AI Code Agents |
| | """) |
| |
|
| | |
| | start_btn.click( |
| | fn=start_process, |
| | inputs=[initial_prompt], |
| | outputs=[ |
| | current_question, |
| | suggestion_text, |
| | answer_input, |
| | answer_input, |
| | submit_btn, |
| | generate_btn, |
| | status_text, |
| | enhanced_output, |
| | download_btn |
| | ] |
| | ) |
| |
|
| | submit_btn.click( |
| | fn=submit_answer, |
| | inputs=[answer_input], |
| | outputs=[ |
| | current_question, |
| | suggestion_text, |
| | answer_input, |
| | answer_input, |
| | submit_btn, |
| | generate_btn, |
| | status_text, |
| | enhanced_output, |
| | download_btn |
| | ] |
| | ) |
| |
|
| | answer_input.submit( |
| | fn=submit_answer, |
| | inputs=[answer_input], |
| | outputs=[ |
| | current_question, |
| | suggestion_text, |
| | answer_input, |
| | answer_input, |
| | submit_btn, |
| | generate_btn, |
| | status_text, |
| | enhanced_output, |
| | download_btn |
| | ] |
| | ) |
| |
|
| | generate_btn.click( |
| | fn=generate_final_prompt, |
| | inputs=[model_choice], |
| | outputs=[enhanced_output, status_text, download_btn] |
| | ) |
| |
|
| | enhanced_output.change( |
| | fn=save_prompt_to_file, |
| | inputs=[enhanced_output], |
| | outputs=[download_btn] |
| | ) |
| |
|
| | if __name__ == "__main__": |
| | demo.launch() |
| |
|