Spaces:
Runtime error
Runtime error
File size: 2,476 Bytes
9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 03c4043 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 5d0faac 9abe824 |
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 |
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# ๋ชจ๋ธ ๋ก๋
MODEL_NAME = "ewhk9887/deepseek-cokoder"
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.float16 if device == "cuda" else torch.float32)
model.to(device)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
# ์ฝ๋ ๋ฆฌ๋ทฐ ์์ฑ ํจ์
def generate_code_review(user_input, system_message, max_tokens, temperature, top_p):
"""
์ฌ์ฉ์ ์
๋ ฅ๊ณผ ์์คํ
๋ฉ์์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก AI ์ฝ๋ ๋ฆฌ๋ทฐ ์์ฑ.
"""
# ๋ฉ์์ง ํฌ๋งท ์์ฑ
prompt = f"{system_message}\n\nCode:\n{user_input}\n\nReview:"
inputs = tokenizer(prompt, return_tensors="pt").to(device)
# ๋ชจ๋ธ ์ถ๋ ฅ ์์ฑ
outputs = model.generate(
inputs.input_ids,
max_new_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
repetition_penalty=1.1,
pad_token_id=tokenizer.eos_token_id
)
review = tokenizer.decode(outputs[0], skip_special_tokens=True)
return review
# Gradio ์ธํฐํ์ด์ค ์์ฑ
with gr.Blocks() as demo:
gr.Markdown("# DeepSeek Code Review Assistant")
gr.Markdown("AI๊ฐ ์ฝ๋์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฝ๋๋ฅผ ์
๋ ฅํ๊ณ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ์ธ์!")
with gr.Row():
with gr.Column():
code_input = gr.Textbox(label="์ฝ๋ ์
๋ ฅ", placeholder="๋ฆฌ๋ทฐ๋ฅผ ์ํ๋ ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์...", lines=10)
system_message = gr.Textbox(
label="์์คํ
๋ฉ์์ง",
value="์ ์ ์ ์ฝ๋์์ ์ค๋ฅ์ ๊ฐ์ ์ ์ ํ๊ตญ์ด๋ก ๋ฆฌ๋ทฐํ์ธ์.",
lines=3,
)
with gr.Column():
review_output = gr.Textbox(label="์ฝ๋ ๋ฆฌ๋ทฐ ๊ฒฐ๊ณผ", lines=10)
# ์ถ๊ฐ ์ต์
max_tokens = gr.Slider(label="Max Tokens", minimum=10, maximum=512, value=256, step=10)
temperature = gr.Slider(label="Temperature", minimum=0.1, maximum=1.0, value=0.7, step=0.1)
top_p = gr.Slider(label="Top-p", minimum=0.1, maximum=1.0, value=0.9, step=0.05)
# ๋ฒํผ
generate_button = gr.Button("๋ฆฌ๋ทฐ ์์ฑ")
# ์ด๋ฒคํธ ์ฐ๊ฒฐ
generate_button.click(
fn=generate_code_review,
inputs=[code_input, system_message, max_tokens, temperature, top_p],
outputs=review_output,
)
# ์คํ
if __name__ == "__main__":
demo.launch()
|