seniruk commited on
Commit
2f81069
·
verified ·
1 Parent(s): e6f58be

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -0
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+ import gradio as gr
3
+
4
+ # Paths
5
+ BINARY_PATH = "./bin/llama-cli" # prebuilt binary from zip
6
+ MODEL_PATH = "./qwen0.5-finetuned.gguf"
7
+
8
+ # Commit message prompt template
9
+ commit_prompt = """Generate a meaningful commit message explaining all the changes in the provided Git diff.
10
+
11
+ ### Git Diff:
12
+ {}
13
+
14
+ ### Commit Message:
15
+ """
16
+
17
+ # Example git diff prefilled in Gradio
18
+ git_diff_example = """
19
+ diff --git a/index.html b/index.html
20
+ index 89abcde..f123456 100644
21
+ --- a/index.html
22
+ +++ b/index.html
23
+ @@ -5,16 +5,6 @@ <body>
24
+ <h1>Welcome to My Page</h1>
25
+
26
+ - <table border="1">
27
+ - <tr>
28
+ - <th>Name</th>
29
+ - <th>Age</th>
30
+ - </tr>
31
+ - <tr>
32
+ - <td>John Doe</td>
33
+ - <td>30</td>
34
+ - </tr>
35
+ - </table>
36
+
37
+ + <p>This is a newly added paragraph replacing the table.</p>
38
+ </body>
39
+ </html>
40
+ """
41
+
42
+ def generate_commit(git_diff: str, max_tokens: int = 64) -> str:
43
+ """Generate a commit message using the llama-cli binary."""
44
+
45
+ if not git_diff.strip():
46
+ return "Please provide a git diff to summarize."
47
+
48
+ prompt_text = commit_prompt.format(git_diff)
49
+
50
+ cmd = [
51
+ BINARY_PATH,
52
+ "-m", MODEL_PATH,
53
+ "-p", prompt_text,
54
+ "-n", str(max_tokens)
55
+ ]
56
+
57
+ try:
58
+ # Run the binary and capture output
59
+ result = subprocess.run(cmd, capture_output=True, text=True, check=True)
60
+ return result.stdout.strip()
61
+ except subprocess.CalledProcessError as e:
62
+ return f"Error running binary: {e}\n{e.stderr}"
63
+
64
+ if __name__ == "__main__":
65
+ demo = gr.Interface(
66
+ fn=generate_commit,
67
+ inputs=[
68
+ gr.Textbox(lines=30, label="Git Diff", value=git_diff_example),
69
+ gr.Slider(1, 2048, value=64, step=1, label="max_tokens")
70
+ ],
71
+ outputs=gr.Textbox(label="Commit Message", lines=8),
72
+ title="Commit Message Generator",
73
+ description="Paste a git diff and generate a concise commit message using the GGUF model via llama-cli binary.",
74
+ allow_flagging="never"
75
+ )
76
+ demo.launch(share=False)