moondream2 / app.py
vikhyatk's picture
Update app.py
a294418 verified
import gradio as gr
import moondream as md
import os
moondream_api_key = os.getenv("MOONDREAM_API_KEY")
model = md.vl(api_key=moondream_api_key)
def answer_question(img, prompt):
buffer = ""
for chunk in model.query(img, prompt, stream=True)["answer"]:
buffer += chunk
yield buffer
def process_answer(img, answer):
return gr.update(visible=False, value=None)
with gr.Blocks() as demo:
gr.Markdown(
"""
# πŸŒ” moondream2
A tiny vision language model. Check out other capabilities (object detection, pointing etc.) in the [Moondream Playground](https://moondream.ai/playground).
"""
)
with gr.Row():
prompt = gr.Textbox(label="Input", value="Describe this image.", scale=4)
submit = gr.Button("Submit")
with gr.Row():
img = gr.Image(type="pil", label="Upload an Image")
with gr.Column():
output = gr.Markdown(label="Response")
ann = gr.Image(visible=False, label="Annotated Image")
submit.click(answer_question, [img, prompt], output)
prompt.submit(answer_question, [img, prompt], output)
output.change(process_answer, [img, output], ann, show_progress=False)
demo.queue().launch()