manuelcozar55 commited on
Commit
7413e10
·
verified ·
1 Parent(s): c051fb9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -53
app.py CHANGED
@@ -1,63 +1,64 @@
1
- import gradio as gr
2
  from huggingface_hub import InferenceClient
 
 
 
3
 
4
- """
5
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- """
7
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
-
9
-
10
- def respond(
11
- message,
12
- history: list[tuple[str, str]],
13
- system_message,
14
- max_tokens,
15
- temperature,
16
- top_p,
17
- ):
18
- messages = [{"role": "system", "content": system_message}]
19
 
20
- for val in history:
21
- if val[0]:
22
- messages.append({"role": "user", "content": val[0]})
23
- if val[1]:
24
- messages.append({"role": "assistant", "content": val[1]})
 
25
 
26
- messages.append({"role": "user", "content": message})
 
 
 
 
 
 
 
 
 
 
27
 
28
- response = ""
 
 
 
 
 
29
 
30
- for message in client.chat_completion(
31
- messages,
32
- max_tokens=max_tokens,
33
- stream=True,
34
  temperature=temperature,
 
35
  top_p=top_p,
36
- ):
37
- token = message.choices[0].delta.content
38
-
39
- response += token
40
- yield response
41
-
42
- """
43
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
44
- """
45
- demo = gr.ChatInterface(
46
- respond,
47
- additional_inputs=[
48
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
49
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
50
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
51
- gr.Slider(
52
- minimum=0.1,
53
- maximum=1.0,
54
- value=0.95,
55
- step=0.05,
56
- label="Top-p (nucleus sampling)",
57
- ),
58
- ],
59
- )
60
 
 
 
61
 
62
- if __name__ == "__main__":
63
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from huggingface_hub import InferenceClient
2
+ import gradio as gr
3
+ import json
4
+ import PyPDF2
5
 
6
+ client = InferenceClient(
7
+ "mistralai/Mistral-7B-Instruct-v0.3"
8
+ )
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
+ def format_prompt(mode, message, instructions, history):
11
+ prompt = f"<s>[MODE] {mode} [/MODE] "
12
+ for user_prompt, bot_response in history:
13
+ prompt += f"[INST] {user_prompt} [/INST] {bot_response}</s> "
14
+ prompt += f"[INST] {message} {instructions} [/INST]"
15
+ return prompt
16
 
17
+ def process_input(file, file_type):
18
+ if file_type == 'pdf':
19
+ reader = PyPDF2.PdfFileReader(file.name)
20
+ text = ""
21
+ for page in range(reader.numPages):
22
+ text += reader.getPage(page).extractText()
23
+ return text
24
+ elif file_type == 'json':
25
+ data = json.load(file)
26
+ return json.dumps(data, indent=2)
27
+ return file
28
 
29
+ def generate(mode, file, file_type, instructions, history, temperature=0.9, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0):
30
+ temperature = max(float(temperature), 1e-2)
31
+ top_p = float(top_p)
32
+
33
+ text_input = process_input(file, file_type)
34
+ formatted_prompt = format_prompt(mode, text_input, instructions, history)
35
 
36
+ generate_kwargs = dict(
 
 
 
37
  temperature=temperature,
38
+ max_new_tokens=max_new_tokens,
39
  top_p=top_p,
40
+ repetition_penalty=repetition_penalty,
41
+ do_sample=True,
42
+ seed=42,
43
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
+ stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
46
+ output = ""
47
 
48
+ for response in stream:
49
+ output += response.token.text
50
+ yield output
51
+ return output
52
+
53
+ gr.ChatInterface(
54
+ fn=generate,
55
+ inputs=[
56
+ gr.Dropdown(label="Mode", choices=["translation", "summary", "explanation"], value="translation"),
57
+ gr.File(label="Input File", type="file"),
58
+ gr.Radio(label="File Type", choices=["pdf", "json"], value="pdf"),
59
+ gr.Textbox(label="Additional Instructions", placeholder="Enter any additional instructions here"),
60
+ gr.Chatbot()
61
+ ],
62
+ outputs=gr.Chatbot(),
63
+ title="Mistral 7B v0.3"
64
+ ).launch(show_api=False)