Spaces:
Running
Running
| title: Anycoder | |
| emoji: π’ | |
| colorFrom: indigo | |
| colorTo: indigo | |
| sdk: gradio | |
| sdk_version: 5.36.2 | |
| app_file: app.py | |
| pinned: false | |
| disable_embedding: true | |
| hf_oauth: true | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
| # AnyCoder - AI Code Generator | |
| AnyCoder is an AI-powered code generator that helps you create applications by describing them in plain English. It supports multiple AI models and can generate HTML/CSS/JavaScript code for web applications. | |
| ## Features | |
| - **Multi-Model Support**: Choose from various AI models including DeepSeek, ERNIE-4.5-VL, MiniMax, and Qwen | |
| - **Image-to-Code**: Upload UI design images and get corresponding HTML/CSS code (ERNIE-4.5-VL model) | |
| - **Image Text Extraction**: Upload images and extract text using OCR for processing | |
| - **Website Redesign**: Enter a website URL to extract content and redesign it with modern, responsive layouts | |
| - **Live Preview**: See your generated code in action with the built-in sandbox | |
| - **Web Search Integration**: Enable real-time web search to get the latest information and best practices | |
| - **Chat History**: Keep track of your conversations and generated code | |
| - **Quick Examples**: Pre-built examples to get you started quickly | |
| - **π One-Click Deployment**: Deploy your generated applications directly to Hugging Face Spaces | |
| ## Installation | |
| 1. Clone the repository: | |
| ```bash | |
| git clone <repository-url> | |
| cd anycoder | |
| ``` | |
| 2. Install dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 3. Set up environment variables: | |
| ```bash | |
| export HF_TOKEN="your_huggingface_token" | |
| export TAVILY_API_KEY="your_tavily_api_key" # Optional, for web search feature | |
| ``` | |
| ## Usage | |
| 1. Run the application: | |
| ```bash | |
| python app.py | |
| ``` | |
| 2. Open your browser and navigate to the provided URL | |
| 3. Describe your application in the text input field | |
| 4. Optionally: | |
| - Upload a UI design image (for ERNIE-4.5-VL model) | |
| - Enable web search to get the latest information | |
| - Choose a different AI model | |
| 5. Click "Generate" to create your code | |
| 6. View the generated code in the Code Editor tab or see it in action in the Live Preview tab | |
| 7. **Deploy to Space**: Enter a title and click "π Deploy to Space" to publish your application | |
| ## π Deployment Feature | |
| AnyCoder now includes one-click deployment to Hugging Face Spaces! This feature allows you to: | |
| ### How to Deploy | |
| 1. **Login**: Click the "Sign in with Hugging Face" button in the sidebar | |
| 2. **Authorize Permissions**: When the authorization page appears, make sure to grant ALL the requested permissions: | |
| - β **read-repos** - Read access to repositories | |
| - β **write-repos** - Write access to create repositories | |
| - β **manage-repos** - Manage repository settings | |
| 3. **Complete Authorization**: Click "Authorize" to complete the login | |
| 4. **Generate Code**: Generate some HTML code using the AI | |
| 5. **Enter Title**: In the sidebar, enter a title for your space (e.g., "My Todo App") | |
| 6. **Deploy**: Click the "π Deploy to Space" button | |
| 7. **Share**: Get a shareable URL for your deployed application | |
| **Important**: You must grant ALL three permissions during the OAuth authorization process. If you only grant partial permissions, deployment will fail. | |
| **Note**: You need to be logged in with your Hugging Face account to deploy. This ensures that: | |
| - Deployments are created under your own account namespace | |
| - You can manage and update your spaces from your Hugging Face dashboard | |
| - Each deployment gets a unique URL under your username | |
| **Technical Note**: The deployment uses your personal OAuth token to create spaces under your account, ensuring full security and ownership of your deployed applications. | |
| ### Troubleshooting Deployment Issues | |
| If you encounter permission errors during deployment: | |
| 1. **Check Permissions**: Make sure you granted all three required permissions during login | |
| 2. **Logout and Login Again**: Click logout and sign in again, ensuring all permissions are granted | |
| 3. **Account Status**: Verify your Hugging Face account allows repository creation | |
| 4. **Network Issues**: Check your internet connection and try again | |
| 5. **Contact Support**: If issues persist, contact Hugging Face support | |
| ### What Gets Deployed | |
| - **Complete HTML Application**: Your generated code wrapped in a professional template | |
| - **Responsive Design**: Mobile-friendly layout with modern styling | |
| - **Project Documentation**: README with project details and prompts used | |
| - **Live URL**: Publicly accessible URL that anyone can visit | |
| ### Deployment Benefits | |
| - **Instant Publishing**: No need to set up hosting or domains | |
| - **Shareable**: Get a public URL to share with others | |
| - **Professional**: Clean, branded presentation of your work | |
| - **Version Control**: Each deployment creates a new space with timestamp | |
| - **Free Hosting**: Hosted on Hugging Face's infrastructure | |
| ### Example Deployment | |
| ``` | |
| Title: "My Weather Dashboard" | |
| Generated Code: <div>Weather app HTML...</div> | |
| Result: https://huggingface.co/spaces/my-weather-dashboard-1234567890 | |
| ``` | |
| The deployed space will include: | |
| - Your application with professional styling | |
| - A header with your title and AnyCoder branding | |
| - A footer with attribution | |
| - A README documenting the project | |
| ## Web Search Feature | |
| The web search feature uses Tavily to provide real-time information when generating code. To enable this feature: | |
| 1. Get a free Tavily API key from [Tavily Platform](https://tavily.com/) | |
| 2. Set the `TAVILY_API_KEY` environment variable | |
| 3. Toggle the "π Enable Web Search" checkbox in the sidebar | |
| When enabled, the AI will search the web for the latest information, best practices, and technologies related to your request. | |
| ## Image Text Extraction | |
| The application supports extracting text from images using OCR (Optical Character Recognition). This feature allows you to: | |
| 1. Upload image files (JPG, PNG, BMP, TIFF, GIF, WebP) through the file input | |
| 2. Automatically extract text from the images using Tesseract OCR | |
| 3. Include the extracted text in your prompts for code generation | |
| ### Setting up OCR | |
| To use the image text extraction feature, you need to install Tesseract OCR on your system. See `install_tesseract.md` for detailed installation instructions. | |
| **Example usage:** | |
| - Upload an image containing text (like a screenshot, document, or handwritten notes) | |
| - The application will extract the text and include it in your prompt | |
| - You can then ask the AI to process, summarize, or work with the extracted text | |
| ## Website Redesign Feature | |
| The website redesign feature allows you to extract content from existing websites and generate modern, responsive redesigns. This feature: | |
| 1. **Extracts Website Content**: Automatically scrapes the target website to extract: | |
| - Page title and meta description | |
| - Navigation menu structure | |
| - Main content sections | |
| - Images and their descriptions | |
| - Overall page structure and purpose | |
| 2. **Generates Modern Redesigns**: Creates improved versions with: | |
| - Modern, responsive layouts | |
| - Enhanced user experience | |
| - Better accessibility | |
| - Mobile-first design principles | |
| - Current design trends and best practices | |
| ### How to Use Website Redesign | |
| 1. **Enter a Website URL**: In the "π Website URL (for redesign)" field, enter the URL of the website you want to redesign | |
| - Example: `https://example.com` | |
| - The URL can be with or without `https://` | |
| 2. **Add Custom Requirements**: Optionally describe specific improvements you want: | |
| - "Make it more modern and minimalist" | |
| - "Add a dark mode toggle" | |
| - "Improve the mobile layout" | |
| - "Use a different color scheme" | |
| 3. **Enable Web Search**: Toggle the web search feature to get the latest design trends and best practices | |
| 4. **Generate**: Click "Generate" to create your redesigned website | |
| ### Example Usage | |
| ``` | |
| URL: https://example.com | |
| Description: Redesign this website with a modern, minimalist approach. Use a clean typography and improve the mobile experience. | |
| ``` | |
| The AI will analyze the original website content and create a completely redesigned version that maintains the core functionality while providing a better user experience. | |
| ### Supported Websites | |
| The feature works with most public websites, including: | |
| - Business websites | |
| - Portfolio sites | |
| - Blog platforms | |
| - E-commerce sites | |
| - Landing pages | |
| - Documentation sites | |
| **Note**: Some websites may block automated access or require JavaScript to load content. In such cases, the extraction may be limited. | |
| ## Available Models | |
| - **DeepSeek V3**: Advanced code generation model | |
| - **DeepSeek R1**: Specialized for code generation tasks | |
| - **ERNIE-4.5-VL**: Multimodal model with image support | |
| - **MiniMax M1**: General-purpose AI model | |
| - **Qwen3-235B-A22B**: Large language model for code generation | |
| ## Environment Variables | |
| - `HF_TOKEN`: Your Hugging Face API token (required) | |
| - `TAVILY_API_KEY`: Your Tavily API key (optional, for web search) | |
| ## License | |
| [Add your license information here] | |
| ## Project Structure | |
| ``` | |
| anycoder/ | |
| βββ app.py # Main application (everything included) | |
| βββ app.css # Basic styling | |
| βββ pyproject.toml # Dependencies | |
| βββ README.md # This file | |
| ``` | |
| ## Setup | |
| 1. Set your Hugging Face API token: | |
| ```bash | |
| export HF_TOKEN="your_huggingface_token" | |
| ``` | |
| 2. Install dependencies: | |
| ```bash | |
| uv sync | |
| ``` | |
| 3. Run the application: | |
| ```bash | |
| uv run python app.py | |
| ``` | |
| ## Usage | |
| 1. **Sign in with your Hugging Face account** using the login button at the top left. | |
| 2. Enter your application requirements in the text area | |
| 3. Click "send" to generate code | |
| 4. View the generated code in the code drawer | |
| 5. See the live preview in the sandbox area | |
| 6. Use example cards for quick prompts | |
| ## Code Example | |
| ```python | |
| import os | |
| from huggingface_hub import InferenceClient | |
| client = InferenceClient( | |
| provider="novita", | |
| api_key=os.environ["HF_TOKEN"], | |
| bill_to="huggingface" | |
| ) | |
| completion = client.chat.completions.create( | |
| model="deepseek-ai/DeepSeek-V3-0324", | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": "Create a simple todo app" | |
| } | |
| ], | |
| ) | |
| ``` | |
| ## Architecture | |
| The application uses: | |
| - **Gradio**: For the web interface | |
| - **Hugging Face Hub**: For model inference | |
| - **ModelScope Studio**: For UI components | |
| - **OAuth Login**: Requires users to sign in with Hugging Face for code generation | |
| - **Streaming**: For real-time code generation | |
| # Hugging Face Coder | |
| A Gradio-based application that uses Hugging Face models to generate code based on user requirements. The app supports both text-only and multimodal (text + image) code generation. | |
| ## Features | |
| - **Multiple Model Support**: DeepSeek V3, DeepSeek R1, and ERNIE-4.5-VL | |
| - **Multimodal Input**: Upload images to help describe your requirements | |
| - **Real-time Code Generation**: Stream responses from the models | |
| - **Live Preview**: See your generated code in action with the built-in sandbox | |
| - **History Management**: Keep track of your previous generations | |
| - **Example Templates**: Quick-start with predefined application templates | |
| ## Setup | |
| 1. Install dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 2. Set your Hugging Face API token as an environment variable: | |
| ```bash | |
| export HF_TOKEN="your_huggingface_token" | |
| ``` | |
| 3. Run the application: | |
| ```bash | |
| python app.py | |
| ``` | |
| ## Usage | |
| 1. **Text-only Generation**: Simply type your requirements in the text area | |
| 2. **Multimodal Generation**: Upload an image and describe what you want to create | |
| 3. **Model Selection**: Switch between different models using the model selector | |
| 4. **Examples**: Use the provided example templates to get started quickly | |
| ## Supported Models | |
| - **DeepSeek V3**: General code generation | |
| - **DeepSeek R1**: Advanced code generation | |
| - **ERNIE-4.5-VL**: Multimodal code generation with image understanding | |
| ## Environment Variables | |
| - `HF_TOKEN`: Your Hugging Face API token (required) | |
| ## Examples | |
| - Todo App | |
| - Calculator | |
| - Weather Dashboard | |
| - Chat Interface | |
| - E-commerce Product Card | |
| - Login Form | |
| - Dashboard Layout | |
| - Data Table | |
| - Image Gallery | |
| - UI from Image (multimodal) |