phoen1x commited on
Commit
ae144b0
1 Parent(s): d71cbf6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -133
app.py CHANGED
@@ -1,132 +1,22 @@
1
- # from huggingface_hub import InferenceClient
2
- # import gradio as gr
3
-
4
- # client = InferenceClient(
5
- # "mistralai/Mixtral-8x7B-Instruct-v0.1"
6
- # )
7
-
8
-
9
- # def format_prompt(message, history):
10
- # prompt = "<s>"
11
- # for user_prompt, bot_response in history:
12
- # prompt += f"[INST] {user_prompt} [/INST]"
13
- # prompt += f" {bot_response}</s> "
14
- # prompt += f"[INST] {message} [/INST]"
15
- # return prompt
16
-
17
- # def generate(
18
- # prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0,
19
- # ):
20
- # temperature = float(temperature)
21
- # if temperature < 1e-2:
22
- # temperature = 1e-2
23
- # top_p = float(top_p)
24
-
25
- # generate_kwargs = dict(
26
- # temperature=temperature,
27
- # max_new_tokens=max_new_tokens,
28
- # top_p=top_p,
29
- # repetition_penalty=repetition_penalty,
30
- # do_sample=True,
31
- # seed=42,
32
- # )
33
-
34
- # formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
35
- # stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
36
- # output = ""
37
-
38
- # for response in stream:
39
- # output += response.token.text
40
- # yield output
41
- # return output
42
-
43
-
44
- # additional_inputs=[
45
- # gr.Textbox(
46
- # label="System Prompt",
47
- # max_lines=1,
48
- # interactive=True,
49
- # ),
50
- # gr.Slider(
51
- # label="Temperature",
52
- # value=0.9,
53
- # minimum=0.0,
54
- # maximum=1.0,
55
- # step=0.05,
56
- # interactive=True,
57
- # info="Higher values produce more diverse outputs",
58
- # ),
59
- # gr.Slider(
60
- # label="Max new tokens",
61
- # value=256,
62
- # minimum=0,
63
- # maximum=1048,
64
- # step=64,
65
- # interactive=True,
66
- # info="The maximum numbers of new tokens",
67
- # ),
68
- # gr.Slider(
69
- # label="Top-p (nucleus sampling)",
70
- # value=0.90,
71
- # minimum=0.0,
72
- # maximum=1,
73
- # step=0.05,
74
- # interactive=True,
75
- # info="Higher values sample more low-probability tokens",
76
- # ),
77
- # gr.Slider(
78
- # label="Repetition penalty",
79
- # value=1.2,
80
- # minimum=1.0,
81
- # maximum=2.0,
82
- # step=0.05,
83
- # interactive=True,
84
- # info="Penalize repeated tokens",
85
- # )
86
- # ]
87
-
88
- # examples=[["I'm planning a vacation to Japan. Can you suggest a one-week itinerary including must-visit places and local cuisines to try?", None, None, None, None, None, ],
89
- # ["Can you write a short story about a time-traveling detective who solves historical mysteries?", None, None, None, None, None,],
90
- # ["I'm trying to learn French. Can you provide some common phrases that would be useful for a beginner, along with their pronunciations?", None, None, None, None, None,],
91
- # ["I have chicken, rice, and bell peppers in my kitchen. Can you suggest an easy recipe I can make with these ingredients?", None, None, None, None, None,],
92
- # ["Can you explain how the QuickSort algorithm works and provide a Python implementation?", None, None, None, None, None,],
93
- # ["What are some unique features of Rust that make it stand out compared to other systems programming languages like C++?", None, None, None, None, None,],
94
- # ]
95
-
96
- # gr.ChatInterface(
97
- # fn=generate,
98
- # chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"),
99
- # additional_inputs=additional_inputs,
100
- # title="Mixtral 46.7B",
101
- # examples=examples,
102
- # concurrency_limit=20,
103
- # ).launch(show_api= True)
104
-
105
-
106
  from huggingface_hub import InferenceClient
107
  import gradio as gr
108
- from PyPDF2 import PdfReader
109
 
110
  client = InferenceClient(
111
  "mistralai/Mixtral-8x7B-Instruct-v0.1"
112
  )
113
 
114
- def format_prompt(message, history):
115
- prompt = "<s>"
116
- for user_prompt, bot_response in history:
117
- prompt += f"[INST] {user_prompt} [/INST]"
118
- prompt += f" {bot_response}</s> "
119
- prompt += f"[INST] {message} [/INST]"
120
- return prompt
121
-
122
- def extract_text_from_pdf(pdf_file):
123
- text = ""
124
- pdf_reader = PdfReader(pdf_file)
125
- for page in pdf_reader.pages:
126
- text += page.extract_text()
127
- return text
128
 
129
- def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0, pdf_text=None):
 
 
 
 
 
 
 
 
 
 
130
  temperature = float(temperature)
131
  if temperature < 1e-2:
132
  temperature = 1e-2
@@ -142,9 +32,6 @@ def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=256
142
  )
143
 
144
  formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
145
- if pdf_text:
146
- formatted_prompt += pdf_text
147
-
148
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
149
  output = ""
150
 
@@ -153,13 +40,13 @@ def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=256
153
  yield output
154
  return output
155
 
 
156
  additional_inputs=[
157
  gr.Textbox(
158
  label="System Prompt",
159
  max_lines=1,
160
  interactive=True,
161
  ),
162
- gr.File("file", label="Upload PDF"),
163
  gr.Slider(
164
  label="Temperature",
165
  value=0.9,
@@ -198,14 +85,13 @@ additional_inputs=[
198
  )
199
  ]
200
 
201
- examples=[
202
- ["I'm planning a vacation to Japan. Can you suggest a one-week itinerary including must-visit places and local cuisines to try?", None, None, None, None, None, ],
203
- ["Can you write a short story about a time-traveling detective who solves historical mysteries?", None, None, None, None, None,],
204
- ["I'm trying to learn French. Can you provide some common phrases that would be useful for a beginner, along with their pronunciations?", None, None, None, None, None,],
205
- ["I have chicken, rice, and bell peppers in my kitchen. Can you suggest an easy recipe I can make with these ingredients?", None, None, None, None, None,],
206
- ["Can you explain how the QuickSort algorithm works and provide a Python implementation?", None, None, None, None, None,],
207
- ["What are some unique features of Rust that make it stand out compared to other systems programming languages like C++?", None, None, None, None, None,],
208
- ]
209
 
210
  gr.ChatInterface(
211
  fn=generate,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from huggingface_hub import InferenceClient
2
  import gradio as gr
 
3
 
4
  client = InferenceClient(
5
  "mistralai/Mixtral-8x7B-Instruct-v0.1"
6
  )
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
+ def format_prompt(message, history):
10
+ prompt = "<s>"
11
+ for user_prompt, bot_response in history:
12
+ prompt += f"[INST] {user_prompt} [/INST]"
13
+ prompt += f" {bot_response}</s> "
14
+ prompt += f"[INST] {message} [/INST]"
15
+ return prompt
16
+
17
+ def generate(
18
+ prompt, history, system_prompt, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0,
19
+ ):
20
  temperature = float(temperature)
21
  if temperature < 1e-2:
22
  temperature = 1e-2
 
32
  )
33
 
34
  formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
 
 
 
35
  stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
36
  output = ""
37
 
 
40
  yield output
41
  return output
42
 
43
+
44
  additional_inputs=[
45
  gr.Textbox(
46
  label="System Prompt",
47
  max_lines=1,
48
  interactive=True,
49
  ),
 
50
  gr.Slider(
51
  label="Temperature",
52
  value=0.9,
 
85
  )
86
  ]
87
 
88
+ examples=[["I'm planning a vacation to Japan. Can you suggest a one-week itinerary including must-visit places and local cuisines to try?", None, None, None, None, None, ],
89
+ ["Can you write a short story about a time-traveling detective who solves historical mysteries?", None, None, None, None, None,],
90
+ ["I'm trying to learn French. Can you provide some common phrases that would be useful for a beginner, along with their pronunciations?", None, None, None, None, None,],
91
+ ["I have chicken, rice, and bell peppers in my kitchen. Can you suggest an easy recipe I can make with these ingredients?", None, None, None, None, None,],
92
+ ["Can you explain how the QuickSort algorithm works and provide a Python implementation?", None, None, None, None, None,],
93
+ ["What are some unique features of Rust that make it stand out compared to other systems programming languages like C++?", None, None, None, None, None,],
94
+ ]
 
95
 
96
  gr.ChatInterface(
97
  fn=generate,