rag_demo / app.py
s3nh's picture
Update app.py
2e4755e verified
import torch
import gradio as gr
from fastapi import FastAPI
import os
from PIL import Image
import tempfile
from transformers import TextStreamer
from utils import title_markdown
from utils import block_css
from utils import tos_markdown
from utils import learn_more_markdown
#app = FastAPI()
textbox = gr.Textbox(
show_label = False, placeholder = "Enter text and press ENTER", container = False
)
with gr.Blocks(title = '' ) as demo:
gr.Markdown(title_markdown)
with gr.Blocks(title='Asking questions about images๐Ÿš€') as demo:
gr.Markdown(title_markdown)
state = gr.State()
state_ = gr.State()
first_run = gr.State()
images_tensor = gr.State()
with gr.Row():
with gr.Column(scale=3):
image1 = gr.Image(label="Input Document", type="filepath")
cur_dir = os.path.dirname(os.path.abspath(__file__))
print(cur_dir)
gr.Examples(
examples=[
[ "demo.jfif",
"What is unusual about this image?",
],
["demo.jfif",
"What are the things I should be cautious about when I visit here?",
],
["demo.jfif",
"If there are factual errors in the questions, point it out; if not, proceed answering the question. Whatโ€™s happening in the desert?",
],
["demo.jfif",
"What is the title of this book?",
],
["demo.jfif",
"What type of food is the girl holding?",
],
["demo.jfif",
"What color is the train?",
],
["demo.jfif",
"What is the girl looking at?",
],
["demo.jfif",
"What might be the reason for the dog's aggressive behavior?",
],
],
inputs=[image1, textbox],
)
with gr.Column(scale=7):
#chatbot = gr.Chatbot(label="MoE-LLaVA", bubble_full_width=True).style(height=750)
with gr.Row():
with gr.Column(scale=8):
textbox.render()
with gr.Column(scale=1, min_width=50):
submit_btn = gr.Button(
value="Send", variant="primary", interactive=True
)
with gr.Row(elem_id="buttons") as button_row:
upvote_btn = gr.Button(value="๐Ÿ‘ Upvote", interactive=True)
downvote_btn = gr.Button(value="๐Ÿ‘Ž Downvote", interactive=True)
flag_btn = gr.Button(value="โš ๏ธ Flag", interactive=True)
# stop_btn = gr.Button(value="โน๏ธ Stop Generation", interactive=False)
regenerate_btn = gr.Button(value="๐Ÿ”„ Regenerate", interactive=True)
clear_btn = gr.Button(value="๐Ÿ—‘๏ธ Clear history", interactive=True)
gr.Markdown(tos_markdown)
gr.Markdown(learn_more_markdown)
#submit_btn.click(generate, [image1, textbox, first_run, state, state_, images_tensor],
# [state, state_, chatbot, first_run, textbox, images_tensor, image1])
regenerate_btn.click(regenerate, [state, state_], [state, state_, chatbot, first_run]).then(
generate, [image1, textbox, first_run, state, state_, images_tensor],
[state, state_, chatbot, first_run, textbox, images_tensor, image1])
clear_btn.click(clear_history, [state, state_],
[image1, textbox, first_run, state, state_, chatbot, images_tensor])
app = gr.mount_gradio_app(app, demo, path="/")
demo.launch()