Orcawise commited on
Commit
2373d11
1 Parent(s): 4cd0edc

app.py is uploaded here

Browse files
Files changed (1) hide show
  1. app.py +130 -0
app.py ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ from huggingface_hub import login
4
+
5
+ from transformers import AutoModelForSeq2SeqLM, T5Tokenizer
6
+ from peft import PeftModel, PeftConfig
7
+
8
+
9
+ token = os.environ.get("token")
10
+ login(token)
11
+ print("login is succesful")
12
+ max_length=512
13
+
14
+ MODEL_NAME = "google/flan-t5-base"
15
+ tokenizer = T5Tokenizer.from_pretrained(MODEL_NAME, token=token)
16
+ config = PeftConfig.from_pretrained("Orcawise/eu_ai_act_orcawise_july12")
17
+ base_model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-base")
18
+ model = PeftModel.from_pretrained(base_model, "Orcawise/eu_ai_act_orcawise_july12")
19
+
20
+ #gr.Interface.from_pipeline(pipe).launch()
21
+
22
+ def generate_text(prompt):
23
+ """Generates text using the PEFT model.
24
+ Args:
25
+ prompt (str): The user-provided prompt to start the generation.
26
+ Returns:
27
+ str: The generated text.
28
+ """
29
+
30
+
31
+ # Preprocess the prompt
32
+ # inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
33
+ inputs = tokenizer(prompt, return_tensors="pt")
34
+
35
+ # Generate text using beam search
36
+ outputs = model.generate(
37
+ input_ids = inputs["input_ids"],
38
+ max_length=max_length,
39
+ num_beams=5,
40
+ repetition_penalty=1.5,
41
+ temperature=1,
42
+ top_k=100,
43
+ top_p=0.5,
44
+ early_stopping=True
45
+
46
+ )
47
+
48
+ # Decode the generated tokens
49
+ generated_text = tokenizer.decode(outputs, skip_special_tokens=True)[0]
50
+ print("show the generated text", generated_text)
51
+ return generated_text
52
+ #############
53
+ custom_css="""
54
+ .message.pending {
55
+ background: #A8C4D6;
56
+ }
57
+ /* Response message */
58
+ .message.bot.svelte-1s78gfg.message-bubble-border {
59
+ /* background: white; */
60
+ border-color: #266B99
61
+ }
62
+ /* User message */
63
+ .message.user.svelte-1s78gfg.message-bubble-border{
64
+ background: #9DDDF9;
65
+ border-color: #9DDDF9
66
+
67
+ }
68
+ /* For both user and response message as per the document */
69
+ span.md.svelte-8tpqd2.chatbot.prose p {
70
+ color: #266B99;
71
+ }
72
+ /* Chatbot comtainer */
73
+ .gradio-container{
74
+ /* background: #84D5F7 */
75
+ }
76
+ /* RED (Hex: #DB1616) for action buttons and links only */
77
+ .clear-btn {
78
+ background: #DB1616;
79
+ color: white;
80
+ }
81
+ /* #84D5F7 - Primary colours are set to be used for all sorts */
82
+ .submit-btn {
83
+ background: #266B99;
84
+ color: white;
85
+ }
86
+ """
87
+
88
+ ### working correctly but the welcoming message isnt rendering
89
+ with gr.Blocks(css=custom_css) as demo:
90
+ chatbot = gr.Chatbot()
91
+ msg = gr.Textbox(placeholder="Ask your question...") # Add placeholder text
92
+ submit_button = gr.Button("Submit", elem_classes="submit-btn")
93
+ clear = gr.Button("Clear", elem_classes="clear-btn")
94
+
95
+
96
+ def user(user_message, history):
97
+ return "", history + [[user_message, None]]
98
+
99
+
100
+ def bot(history):
101
+ history[-1][1] = "" # Update the last bot message (welcome message or response)
102
+ if len(history) < 0: # Check if it's the first interaction
103
+ bot_message = "Hi there! How can I help you today?"
104
+ history.append([None, bot_message]) # Add welcome message to history
105
+ for character in bot_message:
106
+ history[-1][1] += character
107
+ yield history # Yield the updated history character by character
108
+
109
+ else:
110
+ previous_message = history[-1][0] # Access the previous user message
111
+ bot_message = generate_text(previous_message) # Generate response based on previous message
112
+ for character in bot_message:
113
+ history[-1][1] += character
114
+ yield history # Yield the updated history character by character
115
+
116
+
117
+
118
+ # Connect submit button to user and then bot functions
119
+ submit_button.click(user, [msg, chatbot], [msg, chatbot], queue=False).then(
120
+ bot, chatbot, chatbot
121
+ )
122
+
123
+ # Trigger user function on Enter key press (same chain as submit button)
124
+ msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
125
+ bot, chatbot, chatbot
126
+ )
127
+
128
+ clear.click(lambda: None, None, chatbot, queue=False)
129
+
130
+ demo.launch()