Spaces:
Running
on
T4
Running
on
T4
Update app.py
Browse files
app.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1 |
-
from __future__ import annotations
|
2 |
-
|
3 |
import os
|
4 |
import string
|
5 |
|
@@ -19,6 +17,7 @@ quantization_config = BitsAndBytesConfig(
|
|
19 |
pipe = pipeline("image-to-text", model=model_id, model_kwargs={"quantization_config": quantization_config})
|
20 |
|
21 |
|
|
|
22 |
def extract_response_pairs(text):
|
23 |
pattern = re.compile(r'(USER:.*?)ASSISTANT:(.*?)(?:$|USER:)', re.DOTALL)
|
24 |
matches = pattern.findall(text)
|
@@ -36,11 +35,10 @@ def postprocess_output(output: str) -> str:
|
|
36 |
|
37 |
|
38 |
def chat(image, text, temperature, length_penalty,
|
39 |
-
repetition_penalty, max_length, min_length,
|
40 |
history_chat):
|
41 |
|
42 |
-
prompt = " ".join(history_chat)
|
43 |
-
prompt = f"USER: <image>\n{text}\nASSISTANT:"
|
44 |
|
45 |
outputs = pipe(image, prompt=prompt,
|
46 |
generate_kwargs={"temperature":temperature,
|
@@ -48,13 +46,14 @@ def chat(image, text, temperature, length_penalty,
|
|
48 |
"repetition_penalty":repetition_penalty,
|
49 |
"max_length":max_length,
|
50 |
"min_length":min_length,
|
51 |
-
"num_beams":num_beams,
|
52 |
"top_p":top_p})
|
53 |
|
54 |
-
|
55 |
-
history_chat.append(
|
|
|
56 |
|
57 |
chat_val = extract_response_pairs(" ".join(history_chat))
|
|
|
58 |
return chat_val, history_chat
|
59 |
|
60 |
|
@@ -67,8 +66,8 @@ css = """
|
|
67 |
"""
|
68 |
with gr.Blocks(css="style.css") as demo:
|
69 |
gr.Markdown(DESCRIPTION)
|
70 |
-
gr.Markdown("
|
71 |
-
gr.Markdown("
|
72 |
|
73 |
chatbot = gr.Chatbot(label="Chat", show_label=False)
|
74 |
gr.Markdown("Input image and text and start chatting π")
|
@@ -185,8 +184,12 @@ with gr.Blocks(css="style.css") as demo:
|
|
185 |
chatbot,
|
186 |
history_chat
|
187 |
],
|
188 |
-
queue=False
|
189 |
-
|
|
|
|
|
|
|
|
|
190 |
|
191 |
|
192 |
if __name__ == "__main__":
|
|
|
|
|
|
|
1 |
import os
|
2 |
import string
|
3 |
|
|
|
17 |
pipe = pipeline("image-to-text", model=model_id, model_kwargs={"quantization_config": quantization_config})
|
18 |
|
19 |
|
20 |
+
|
21 |
def extract_response_pairs(text):
|
22 |
pattern = re.compile(r'(USER:.*?)ASSISTANT:(.*?)(?:$|USER:)', re.DOTALL)
|
23 |
matches = pattern.findall(text)
|
|
|
35 |
|
36 |
|
37 |
def chat(image, text, temperature, length_penalty,
|
38 |
+
repetition_penalty, max_length, min_length, top_p,
|
39 |
history_chat):
|
40 |
|
41 |
+
prompt = " ".join(history_chat) + f"USER: <image>\n{text}\nASSISTANT:"
|
|
|
42 |
|
43 |
outputs = pipe(image, prompt=prompt,
|
44 |
generate_kwargs={"temperature":temperature,
|
|
|
46 |
"repetition_penalty":repetition_penalty,
|
47 |
"max_length":max_length,
|
48 |
"min_length":min_length,
|
|
|
49 |
"top_p":top_p})
|
50 |
|
51 |
+
|
52 |
+
history_chat.append(outputs[0]["generated_text"])
|
53 |
+
print(f"history_chat is {history_chat}")
|
54 |
|
55 |
chat_val = extract_response_pairs(" ".join(history_chat))
|
56 |
+
print(f"chat_val is {chat_val}")
|
57 |
return chat_val, history_chat
|
58 |
|
59 |
|
|
|
66 |
"""
|
67 |
with gr.Blocks(css="style.css") as demo:
|
68 |
gr.Markdown(DESCRIPTION)
|
69 |
+
gr.Markdown("## LLaVA, one of the greatest multimodal chat models is now available in transformers with 4-bit quantization! β‘οΈ")
|
70 |
+
gr.Markdown("## Try it 4-bit quantized LLaVA this demo π€")
|
71 |
|
72 |
chatbot = gr.Chatbot(label="Chat", show_label=False)
|
73 |
gr.Markdown("Input image and text and start chatting π")
|
|
|
184 |
chatbot,
|
185 |
history_chat
|
186 |
],
|
187 |
+
queue=False)
|
188 |
+
|
189 |
+
examples = [["/content/baklava.png", "How to make this pastry?"],["/content/bee.png","Describe this image."]]
|
190 |
+
gr.Examples(examples=examples, inputs=[image, text_input, chat_inputs])
|
191 |
+
|
192 |
+
|
193 |
|
194 |
|
195 |
if __name__ == "__main__":
|