Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| import torch | |
| MODEL_ID = "deepseek-ai/deepseek-coder-1.3b-instruct" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| MODEL_ID, | |
| trust_remote_code=True # keep it, but NO device_map to avoid needing accelerate | |
| ) | |
| PROMPT_TEMPLATE = "<|user|>\n{prompt}\n<|assistant|>\n" | |
| def generate_website_code(user_prompt, max_tokens=512, temperature=0.7, top_p=0.95): | |
| prompt = PROMPT_TEMPLATE.format(prompt=user_prompt) | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| with torch.no_grad(): | |
| output_ids = model.generate( | |
| **inputs, | |
| max_new_tokens=max_tokens, | |
| do_sample=True, | |
| temperature=temperature, | |
| top_p=top_p, | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| text = tokenizer.decode(output_ids[0], skip_special_tokens=True) | |
| code = text.split("<|assistant|>")[-1].strip() | |
| return code, code # (code box, html preview) | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Web X — Turn your website ideas into code with AI.") | |
| with gr.Row(): | |
| prompt = gr.Textbox( | |
| label="Describe your website idea", | |
| lines=3, | |
| placeholder="e.g. Portfolio with navbar, about, projects grid and contact form" | |
| ) | |
| generate_btn = gr.Button("Generate") | |
| code_out = gr.Code(label="Generated HTML/CSS/JS") | |
| preview = gr.HTML(label="Live Preview") | |
| generate_btn.click( | |
| fn=generate_website_code, | |
| inputs=prompt, | |
| outputs=[code_out, preview] | |
| ) | |
| demo.launch() | |