|
--- |
|
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) |