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() | |