File size: 6,551 Bytes
5ccab46
24c66bb
5ccab46
62cdfb3
 
 
 
 
7d6379a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62cdfb3
 
24c66bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62cdfb3
7d6379a
 
24c66bb
 
 
 
18660f4
7d6379a
 
 
24c66bb
 
 
 
18660f4
24c66bb
 
18660f4
7d6379a
 
 
24c66bb
 
 
 
18660f4
7d6379a
 
 
24c66bb
 
 
 
18660f4
7d6379a
 
 
24c66bb
 
 
 
18660f4
7d6379a
 
 
24c66bb
 
 
 
 
18660f4
24c66bb
 
18660f4
7d6379a
 
8d2fe58
7d6379a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24c66bb
 
 
 
18660f4
7d6379a
 
 
24c66bb
7d6379a
24c66bb
 
18660f4
24c66bb
62cdfb3
 
 
487a937
 
5ccab46
24c66bb
5ccab46
487a937
 
 
 
 
71785fb
487a937
62cdfb3
487a937
1cc4f09
4269672
1cc4f09
 
71785fb
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
import streamlit as st
from transformers import pipeline

################################
####### Generic functions ######
################################

def option_change():
    if st.session_state.action_type=="Sentiment Analysis":
        sentiment_analysis()
    elif st.session_state.action_type=="Zero-shot Classification":
        zero_shot_classification()
    elif st.session_state.action_type=="Text Generation":
        text_generation()
    elif st.session_state.action_type=="Mask Filling":
        mask_filling()
    elif st.session_state.action_type=="Named Entity Recognition":
        named_entity_recognition()
    elif st.session_state.action_type=="Question & Answering":
        qna()
    elif st.session_state.action_type=="Summarization":
        summarization()
    elif st.session_state.action_type=="English to French Translation":
        translation_eng2frn()

def button_clicked():
    if st.session_state.action_type=="Sentiment Analysis":
        sentiment_analysis_btn()
    elif st.session_state.action_type=="Zero-shot Classification":
        zero_shot_classification_btn()
    elif st.session_state.action_type=="Text Generation":
        text_generation_btn()
    elif st.session_state.action_type=="Mask Filling":
        mask_filling_btn()
    elif st.session_state.action_type=="Named Entity Recognition":
        named_entity_recognition_btn()
    elif st.session_state.action_type=="Question & Answering":
        qna_btn()
    elif st.session_state.action_type=="Summarization":
        summarization_btn()
    elif st.session_state.action_type=="English to French Translation":
        translation_eng2frn_btn()

def sentiment_analysis():
    st.session_state.input_text="I've been waiting for a HuggingFace course my whole life."
    st.session_state.output_text=""

def sentiment_analysis_btn():
    classifier = pipeline("sentiment-analysis")
    st.session_state.output_text=str(classifier(st.session_state.input_text))

def zero_shot_classification():
    st.session_state.input_text="This is a course about the transformers library"
    st.session_state.output_text=""

def zero_shot_classification_btn():
    classifier = pipeline("zero-shot-classification")
    st.session_state.output_text=str(classifier(
        st.session_state.input_text,
        candidate_labels=["education", "politics", "business"],
    ))

def text_generation():
    st.session_state.input_text="In this course, we will teach you how to"
    st.session_state.output_text=""

def text_generation_btn():
    generator = pipeline("text-generation")
    st.session_state.output_text=str(generator(st.session_state.input_text))

def mask_filling():
    st.session_state.input_text="This course will teach you all about <mask> models."
    st.session_state.output_text=""

def mask_filling_btn():
    unmasker = pipeline("fill-mask")
    st.session_state.output_text=str(unmasker(st.session_state.input_text, top_k=2))

def named_entity_recognition():
    st.session_state.input_text="My name is Sylvain and I work at Hugging Face in Brooklyn."
    st.session_state.output_text=""

def named_entity_recognition_btn():
    ner = pipeline("ner", grouped_entities=True)
    st.session_state.output_text=str(ner(st.session_state.input_text))

def qna():
    st.session_state.input_text="My name is Sylvain and I work at Hugging Face in Brooklyn"
    st.session_state.output_text=""

def qna_btn():
    question_answerer = pipeline("question-answering")
    st.session_state.output_text="Questionn: Where do I work?\n Answer: "
    st.session_state.output_text=st.session_state.output_text + str(question_answerer(
        question=st.session_state.input_text,
        context="My name is Sylvain and I work at Hugging Face in Brooklyn",
    ))

def summarization():
    st.session_state.input_text= """America has changed dramatically during recent years. Not only has the number of 
    graduates in traditional engineering disciplines such as mechanical, civil, 
    electrical, chemical, and aeronautical engineering declined, but in most of 
    the premier American universities engineering curricula now concentrate on 
    and encourage largely the study of engineering science. As a result, there 
    are declining offerings in engineering subjects dealing with infrastructure, 
    the environment, and related issues, and greater concentration on high 
    technology subjects, largely supporting increasingly complex scientific 
    developments. While the latter is important, it should not be at the expense 
    of more traditional engineering.

    Rapidly developing economies such as China and India, as well as other 
    industrial countries in Europe and Asia, continue to encourage and advance 
    the teaching of engineering. Both China and India, respectively, graduate 
    six and eight times as many traditional engineers as does the United States. 
    Other industrial countries at minimum maintain their output, while America 
    suffers an increasingly serious decline in the number of engineering graduates 
    and a lack of well-educated engineers.
    """
    st.session_state.output_text=""

def summarization_btn():
    summarizer = pipeline("summarization")
    st.session_state.output_text=str(summarizer(st.session_state.input_text))

def translation_eng2frn():
    st.session_state.input_text= "This course is produced by Hugging Face."
    st.session_state.output_text=""

def translation_eng2frn_btn():
    translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-fr")
    st.session_state.output_text=str(translator(st.session_state.input_text))
    
################################
####### Display of data ########
################################
st.set_page_config(layout='wide')

# Title
st.title("LLM Basics Demo")

# 3 Column Layout
col1, col2, col3 = st.columns(3)

with col1:
    options = ["Sentiment Analysis", "Zero-shot Classification", "Text Generation","Mask Filling","Named Entity Recognition","Question & Answering","Summarization","English to French Translation"]
    llm_action_type = st.selectbox("Select LLM Tasktype", options,key="action_type", on_change=option_change)
with col3:
    llm_button = st.button("Generate Data",on_click=button_clicked)

# Display Input in single Layout
llm_input_text = st.text_area(label="Enter your message",value="I've been waiting for a HuggingFace course my whole life.",key="input_text", height=400)

# Display Output in single Layout
llm_output_text = st.text_area("Generate Output",key="output_text", height=400)