mobarmg commited on
Commit
f3eb4d5
·
verified ·
1 Parent(s): 5929198

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -35
app.py CHANGED
@@ -5,50 +5,91 @@ from transformers import AutoTokenizer
5
  import re
6
 
7
  model_name = "Naseej/AskMe-Large"
8
- tokenizer = AutoTokenizer.from_pretrained(model_name , bos_token='<|startoftext|>',
9
- eos_token='<|endoftext|>', pad_token='<|pad|>')
10
  model = GPT2LMHeadModel.from_pretrained(model_name)
11
  model.resize_token_embeddings(len(tokenizer))
12
- generator = pipeline("text-generation",model=model,tokenizer=tokenizer)
13
 
14
- def generate(text, num_beams=10, temperature=1, do_sample=True, top_k=40, top_p=60):
15
- prompt = f'Prompt: {text}\nAnswer:'
16
  pred_text = generator(prompt,
17
- pad_token_id=tokenizer.eos_token_id,
18
- num_beams=int(num_beams),
19
- max_length=1024,
20
- min_length=0,
21
- temperature=temperature,
22
- do_sample=do_sample,
23
- top_p=top_p,
24
- top_k=int(top_k),
25
- repetition_penalty=3.0,
26
- no_repeat_ngram_size=3)[0]['generated_text']
27
  try:
28
  pred_sentiment = re.findall("Answer:(.*)", pred_text, re.S)[-1]
29
  except:
30
- pred_sentiment = "None"
31
 
32
  return pred_sentiment
33
 
34
- examples = [
35
- ["اكتب مقال عن الذكاء الصناعي"],
36
- ["اكتب قصة قصيرة عن النجاح"],['كيف يمكن المحافظة على حياه صحية'],
37
- ]
 
 
38
 
39
- demo = gr.Interface(
40
- css=".gradio-container {direction: rtl;}",
41
- fn=generate,
42
- inputs=[
43
- gr.inputs.Textbox(lines=5, label="Input Text"),
44
- gr.inputs.Number(default=4, label="num_beams"),
45
- gr.inputs.Slider(minimum=0.1, maximum=2.0, default=0.99, step=0.01, label="temperature"),
46
- gr.inputs.Checkbox(default = True , label="النمط الابداعي"),
47
- gr.inputs.Number(default=60, label="top_k"),
48
- gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.9, step=0.01, label="top_p"),
49
- ],
50
- outputs=gr.outputs.Textbox(label="Generated Text"),
51
- examples=examples
52
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
- demo.launch()
 
5
  import re
6
 
7
  model_name = "Naseej/AskMe-Large"
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name, bos_token='<|startoftext|>',
9
+ eos_token='<|endoftext|>', pad_token='<|pad|>')
10
  model = GPT2LMHeadModel.from_pretrained(model_name)
11
  model.resize_token_embeddings(len(tokenizer))
12
+ generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
13
 
14
+ def generate_response(message, history, num_beams=4, temperature=0.99, do_sample=True, top_k=60, top_p=0.9):
15
+ prompt = f'Prompt: {message}\nAnswer:'
16
  pred_text = generator(prompt,
17
+ pad_token_id=tokenizer.eos_token_id,
18
+ num_beams=int(num_beams),
19
+ max_length=1024,
20
+ min_length=0,
21
+ temperature=temperature,
22
+ do_sample=do_sample,
23
+ top_p=top_p,
24
+ top_k=int(top_k),
25
+ repetition_penalty=3.0,
26
+ no_repeat_ngram_size=3)[0]['generated_text']
27
  try:
28
  pred_sentiment = re.findall("Answer:(.*)", pred_text, re.S)[-1]
29
  except:
30
+ pred_sentiment = "لم أستطع توليد إجابة. يرجى إعادة صياغة السؤال."
31
 
32
  return pred_sentiment
33
 
34
+ # CSS for RTL support and styling
35
+ css = """
36
+ .gradio-container {direction: rtl;}
37
+ .message.user {background-color: #2b5797; color: white; border-radius: 20px; padding: 8px 12px; margin-bottom: 8px; text-align: right;}
38
+ .message.bot {background-color: #f0f0f0; color: black; border-radius: 20px; padding: 8px 12px; margin-bottom: 8px; text-align: right;}
39
+ """
40
 
41
+ with gr.Blocks(css=css) as demo:
42
+ gr.Markdown("# نظام AskMe - تحدث معي")
43
+
44
+ with gr.Row():
45
+ with gr.Column(scale=3):
46
+ chatbot = gr.Chatbot(label="المحادثة", elem_classes=["chatbot"])
47
+ msg = gr.Textbox(label="اكتب رسالتك هنا", placeholder="اكتب هنا...")
48
+
49
+ with gr.Row():
50
+ submit_btn = gr.Button("إرسال", variant="primary")
51
+ clear_btn = gr.Button("مسح المحادثة")
52
+
53
+ with gr.Column(scale=1):
54
+ with gr.Accordion("إعدادات توليد النص", open=False):
55
+ num_beams = gr.Slider(1, 10, value=4, step=1, label="عدد الشعاعات")
56
+ temperature = gr.Slider(0.1, 2.0, value=0.99, step=0.01, label="درجة الحرارة")
57
+ do_sample = gr.Checkbox(value=True, label="النمط الإبداعي")
58
+ top_k = gr.Slider(1, 100, value=60, step=1, label="Top-K")
59
+ top_p = gr.Slider(0.0, 1.0, value=0.9, step=0.01, label="Top-P")
60
+
61
+ # Example prompts
62
+ with gr.Accordion("أمثلة", open=False):
63
+ gr.Examples(
64
+ [
65
+ ["اكتب مقال عن الذكاء الصناعي"],
66
+ ["اكتب قصة قصيرة عن النجاح"],
67
+ ["كيف يمكن المحافظة على حياه صحية"]
68
+ ],
69
+ inputs=msg
70
+ )
71
+
72
+ # Set up event handlers
73
+ submit_btn.click(
74
+ generate_response,
75
+ inputs=[msg, chatbot, num_beams, temperature, do_sample, top_k, top_p],
76
+ outputs=[chatbot],
77
+ ).then(
78
+ lambda: "",
79
+ None,
80
+ [msg]
81
+ )
82
+
83
+ msg.submit(
84
+ generate_response,
85
+ inputs=[msg, chatbot, num_beams, temperature, do_sample, top_k, top_p],
86
+ outputs=[chatbot],
87
+ ).then(
88
+ lambda: "",
89
+ None,
90
+ [msg]
91
+ )
92
+
93
+ clear_btn.click(lambda: None, None, chatbot, queue=False)
94
 
95
+ demo.launch()