Spaces:
Runtime error
Runtime error
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() | |