File size: 1,230 Bytes
5781b89
a294418
 
5781b89
a294418
 
5781b89
 
 
a294418
 
 
07d11bb
 
 
5781b89
 
 
 
 
a294418
5781b89
 
 
1322687
5781b89
 
 
07d11bb
 
 
 
5781b89
 
07d11bb
5781b89
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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()