File size: 6,438 Bytes
4389dd9
4f390ee
4389dd9
 
d0bce20
ad69aa3
 
733a9eb
e203e99
 
733a9eb
d0bce20
 
 
 
4389dd9
ad69aa3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4389dd9
 
d0bce20
4f390ee
4389dd9
 
 
 
4f390ee
4389dd9
 
554191f
4f390ee
 
8d70f1e
 
 
 
 
 
 
 
 
 
 
 
9b8b546
4f390ee
 
 
 
4389dd9
 
 
4f390ee
c836a14
d0bce20
554191f
 
8404d2a
554191f
c836a14
ad69aa3
4f390ee
 
 
 
 
d0bce20
4f390ee
5e96bb9
4f390ee
4389dd9
ad69aa3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
733a9eb
ad69aa3
 
 
 
 
 
 
 
 
4389dd9
 
 
 
 
 
 
40667d5
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import gradio as gr
from transformers import pipeline

playground = gr.Blocks()
image_pipe = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
get_completion = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")

examples_summarization = [
    ["The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct."], 
    ["Tower Bridge is a Grade I listed combined bascule, suspension, and, until 1960, cantilever bridge[1] in London, built between 1886 and 1894, designed by Horace Jones and engineered by John Wolfe Barry with the help of Henry Marc Brunel.[2] It crosses the River Thames close to the Tower of London and is one of five London bridges owned and maintained by the City Bridge Foundation, a charitable trust founded in 1282. The bridge was constructed to connect the 39 per cent of London's population that lived east of London Bridge, while allowing shipping to access the Pool of London between the Tower of London and London Bridge. The bridge was opened by Edward, Prince of Wales and Alexandra, Princess of Wales on 30 June 1894."]
]

def launch_image_pipe(input):
    out = image_pipe(input)
    return out[0]['generated_text']

def translate(input_text, source, target):
    try:
      model = f"Helsinki-NLP/opus-mt-{source}-{target}"
      pipe = pipeline("translation", model=model)
      translation = pipe(input_text)
      return translation[0]['translation_text'], ""
    except KeyError:
      return "", f"Error: Translation direction {source_readable} to {target} is not supported by Helsinki Translation Models"

def summarize(input):
    output = get_completion(input)
    summary_origin = output[0]['summary_text']
    summary_translated = translate(summary_origin,'en','fr')
    return summary_origin, summary_translated[0]

def create_playground_header():
    gr.Markdown("""
                # 🤗 Hugging Face Labs
                **Explore different LLM on Hugging Face platform. Just play and enjoy**
                """)

def create_playground_footer():
    gr.Markdown("""
                **To Learn More about 🤗 Hugging Face, [Click Here](https://huggingface.co/docs)**
                """)

def create_tabs_header(topic, description, references):
    with gr.Row():
        with gr.Column(scale=4):
            # reference_list = "> " + "\n> ".join(references)
            # content  = f"## {topic}\n"
            # content += f"### {description}\n"
            # for ref in references:
            #     content += f"> {ref}\n"
            # gr.Markdown(content)
            gr.Markdown("""
                        ## Image Captioning
                        ### Upload a image, check what AI understand and have vision on it.
                        > category: Image-to-Text
                        > model: [Salesforce/blip-image-captioning-base](https://huggingface.co/Salesforce/blip-image-captioning-base)
                        """)
            
        with gr.Column(scale=1):
            test_pipeline_button = gr.Button(value="Process")
        return test_pipeline_button

with playground:
    create_playground_header()
    with gr.Tabs():
        with gr.TabItem("Image"):
            
            topic = "Image Captioning"
            description = "Upload a image, check what AI understand and have vision on it."
            references = ["category: Image-to-Text",
                            "model: [Salesforce/blip-image-captioning-base](https://huggingface.co/Salesforce/blip-image-captioning-base)"]
            image_pipeline_button = create_tabs_header(topic, description, references)
            
            with gr.Row():
                with gr.Column():
                    img = gr.Image(type='pil')
                with gr.Column():
                    generated_textbox = gr.Textbox(lines=2, placeholder="", label="Generated Text")
                    
            image_pipeline_button.click(launch_image_pipe,
                                        inputs=[img],
                                        outputs=[generated_textbox])
            
        with gr.TabItem("Text"):
            with gr.Row():
                with gr.Column(scale=4):
                    gr.Markdown("""
                                ## Text Summarization and Translation
                                ### Summarize the paragraph and translate it into other language.
                                > pipeline: summarization, model: [sshleifer/distilbart-cnn-12-6](https://huggingface.co/sshleifer/distilbart-cnn-12-6)
                                > pipeline: translation, model: [Helsinki-NLP/opus-mt-en-fr](https://huggingface.co/Helsinki-NLP/opus-mt-en-fr)
                                """)
                    
                with gr.Column(scale=1):
                    text_pipeline_button = gr.Button(value="Process")

            with gr.Row():
                with gr.Column():
                    source_text = gr.Textbox(label="Text to summarize", lines=6)
                    gr.Examples(examples=examples_summarization, inputs=["source_text"])
                with gr.Column():
                    summary_textbox = gr.Textbox(lines=3, placeholder="", label="Summarization")
                    translated_textbox = gr.Textbox(lines=3, placeholder="", label="Translate Result")

                    
            text_pipeline_button.click(summarize,
                                        inputs=[source_text],
                                        outputs=[summary_textbox, translated_textbox])
            
        with gr.TabItem("Name Entity"):
            gr.Markdown("""
                        > Name Entity Recognition
                        """)
            
    create_playground_footer()

playground.launch(share=True)