File size: 1,702 Bytes
b5e932c
 
 
 
b717579
 
b5e932c
996b567
b5e932c
b717579
996b567
b717579
b5e932c
 
b717579
996b567
b5e932c
 
996b567
 
 
 
b5e932c
996b567
 
 
b717579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
996b567
 
 
 
b717579
 
 
996b567
b717579
 
 
996b567
 
b717579
 
 
 
 
996b567
b5e932c
b717579
b5e932c
 
996b567
 
b717579
996b567
b717579
 
 
b5e932c
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# Model
model_name = "deepseek-ai/deepseek-coder-1.3b-instruct"

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token

# Load model (CPU optimized)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float32,
    low_cpu_mem_usage=True
)

model.to("cpu")
model.eval()

# Generate function
def generate_code(prompt):
    if not prompt.strip():
        return "Please enter a prompt."

    formatted_prompt = f"""You are a professional programmer.
Write clean, complete, and correct code.

Instruction:
{prompt}

Response:
"""

    inputs = tokenizer(
        formatted_prompt,
        return_tensors="pt",
        truncation=True,
        max_length=512
    )

    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=120,
            temperature=0.2,
            top_p=0.9,
            do_sample=True,
            repetition_penalty=1.2,
            eos_token_id=tokenizer.eos_token_id,
            pad_token_id=tokenizer.eos_token_id
        )

    output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)

    # Clean output
    result = output_text.replace(formatted_prompt, "").strip()

    return result

# UI
iface = gr.Interface(
    fn=generate_code,
    inputs=gr.Textbox(
        lines=5,
        placeholder="Example: Create a login page using HTML and CSS"
    ),
    outputs=gr.Textbox(lines=12),
    title="DeepSeek Coder AI (Optimized)",
    description="Code generator running on Hugging Face Spaces (CPU optimized)."
)

iface.launch()