S-Dreamer commited on
Commit
8d6b3ac
·
verified ·
1 Parent(s): c7e08b9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -10
app.py CHANGED
@@ -1,16 +1,59 @@
1
 
2
  import gradio as gr
 
 
3
 
4
- def predict(text: str) -> str:
5
- return text[::-1] # toy example: reverse input
6
 
7
- with gr.Blocks() as demo:
8
- gr.Markdown("## Pure Gradio App")
9
- with gr.Row():
10
- inp = gr.Textbox(label="Input")
11
- out = gr.Textbox(label="Output")
12
- btn = gr.Button("Run")
13
- btn.click(fn=predict, inputs=inp, outputs=out)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  if __name__ == "__main__":
16
- demo.launch()
 
1
 
2
  import gradio as gr
3
+ import torch
4
+ from transformers import AutoModelForCausalLM, AutoTokenizer
5
 
6
+ # --- Model Setup ---
7
+ model_path = "WhiteRabbitNeo/WhiteRabbitNeo-2.5-Qwen-2.5-Coder-7B"
8
 
9
+ model = AutoModelForCausalLM.from_pretrained(
10
+ model_path,
11
+ torch_dtype=torch.float16,
12
+ device_map="auto",
13
+ load_in_4bit=False,
14
+ trust_remote_code=False,
15
+ )
16
+
17
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
18
+
19
+ def generate_code(user_prompt, temperature=0.75, top_p=1.0, max_tokens=2048, top_k=50):
20
+ tokens = tokenizer.encode(user_prompt)
21
+ tokens = torch.LongTensor(tokens).unsqueeze(0).to("cuda")
22
+
23
+ with torch.no_grad():
24
+ output = model.generate(
25
+ input_ids=tokens,
26
+ max_length=len(tokens[0]) + max_tokens,
27
+ do_sample=True,
28
+ temperature=temperature,
29
+ top_p=top_p,
30
+ top_k=top_k,
31
+ num_return_sequences=1,
32
+ pad_token_id=tokenizer.eos_token_id,
33
+ )
34
+
35
+ # Decode only newly generated tokens
36
+ generated_tokens = output[0][len(tokens[0]):]
37
+ code_string = tokenizer.decode(generated_tokens, skip_special_tokens=True)
38
+ # Wrap in python code block for Gradio Markdown rendering
39
+ return f"```python\n{code_string}\n```"
40
+
41
+ # --- Gradio UI ---
42
+ with gr.Blocks(title="Spec Kit Copilot") as demo:
43
+ with gr.Tab("AI Code Generation"):
44
+ user_input = gr.Textbox(label="Describe code to generate", lines=4, placeholder="E.g., Python function to sort a list")
45
+ temperature = gr.Slider(0.0, 1.0, 0.75, label="Temperature")
46
+ top_p = gr.Slider(0.0, 1.0, 1.0, label="Top-p")
47
+ max_tokens = gr.Slider(256, 4096, 2048, step=128, label="Max Tokens")
48
+ top_k = gr.Slider(0, 100, 50, label="Top-k")
49
+ generate_btn = gr.Button("Generate Code")
50
+ preview = gr.Markdown()
51
+
52
+ generate_btn.click(
53
+ fn=generate_code,
54
+ inputs=[user_input, temperature, top_p, max_tokens, top_k],
55
+ outputs=preview
56
+ )
57
 
58
  if __name__ == "__main__":
59
+ demo.launch(server_name="0.0.0.0", server_port=7860)