Detsutut commited on
Commit
8a4de8f
1 Parent(s): b003169

Create app2.py

Browse files
Files changed (1) hide show
  1. app2.py +61 -0
app2.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from ctransformers import AutoModelForCausalLM
3
+ from transformers import AutoTokenizer, pipeline
4
+ import torch
5
+ import re
6
+
7
+ # Initialize the model
8
+ model = AutoModelForCausalLM.from_pretrained("Detsutut/Igea-1B-v0.0.1-Q4_K_M-GGUF")
9
+ tokenizer = AutoTokenizer.from_pretrained( "Detsutut/Igea-350M-v0.0.1")
10
+
11
+
12
+ gen_pipeline = pipeline(
13
+ "text-generation",
14
+ model=model,
15
+ tokenizer=tokenizer
16
+ )
17
+
18
+ # Define the function to generate text
19
+ def generate_text(input_text, max_new_tokens, temperature, top_p, split_output):
20
+ if split_output:
21
+ max_new_tokens=30
22
+ top_p=0.95
23
+ output = gen_pipeline(
24
+ input_text,
25
+ max_new_tokens=max_new_tokens,
26
+ temperature=temperature,
27
+ top_p=top_p,
28
+ return_full_text = False
29
+ )
30
+ generated_text = output[0]['generated_text']
31
+ if split_output:
32
+ sentences = re.split('(?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s', generated_text)
33
+ if sentences:
34
+ generated_text = sentences[0]
35
+ return f"<span>{input_text}</span><b style='color: blue;'>{generated_text}</b>"
36
+
37
+ # Create the Gradio interface
38
+ input_text = gr.Textbox(lines=2, placeholder="Enter your text here...", label="Input Text")
39
+
40
+ max_new_tokens = gr.Slider(minimum=1, maximum=200, value=30, step=1, label="Max New Tokens")
41
+ temperature = gr.Slider(minimum=0.1, maximum=2.0, value=1.0, step=0.1, label="Temperature")
42
+ top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.01, label="Top-p")
43
+ split_output = gr.Checkbox(label="Quick single-sentence output", value=True)
44
+
45
+ with gr.Blocks(css="#outbox { border-radius: 8px !important; border: 1px solid #e5e7eb !important; padding: 8px !important; text-align:center !important;}") as iface:
46
+ gr.Markdown("# Igea Text Generation Interface ⚕️🩺")
47
+ gr.Markdown("⚠️ 🐢💬 This model runs on a **hardware-limited**, free-tier HuggingFace space, resulting in a **low output token throughput** (approx. 1 token/s)")
48
+ input_text.render()
49
+ with gr.Accordion("Advanced Options", open=False):
50
+ max_new_tokens.render()
51
+ temperature.render()
52
+ top_p.render()
53
+ split_output.render()
54
+ output = gr.HTML(label="Generated Text",elem_id="outbox")
55
+
56
+ btn = gr.Button("Generate")
57
+ btn.click(generate_text, [input_text, max_new_tokens, temperature, top_p, split_output], output)
58
+
59
+ # Launch the interface
60
+ if __name__ == "__main__":
61
+ iface.launch(inline=True)