File size: 32,549 Bytes
7b92725
0a784d2
81b1618
7b92725
 
ca86bf8
7b92725
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ec4e25
7b92725
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a784d2
 
7b92725
 
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
a6249aa
 
7b92725
 
 
0a784d2
7b92725
0a784d2
7b92725
 
0a784d2
7b92725
0a784d2
7b92725
 
 
0a784d2
 
6ec4e25
7b92725
 
0a784d2
 
6ec4e25
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
6ec4e25
7b92725
 
0a784d2
 
6ec4e25
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
 
0a784d2
 
7b92725
6ec4e25
 
 
7b92725
 
0a784d2
 
7b92725
 
 
 
 
0a784d2
 
7b92725
 
 
 
 
0a784d2
 
7b92725
 
 
 
 
 
 
6ec4e25
7b92725
 
 
 
6ec4e25
7b92725
 
 
 
 
 
 
 
81b1618
7b92725
b2ef70e
7b92725
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
import gradio as gr
import math
import transformers
from transformers import pipeline

model = pipeline("text-classification", model = 'mboth/klassifizierungGrundfunktionenKH')
klassifikation_waerme_versorgen = pipeline("text-classification", model = 'mboth/klassifizierungWaermeVersorgen')
klassifikation_waerme_verteilen = pipeline("text-classification", model = 'mboth/klassifizierungWaermeVerteilen')
klassifikation_waerme_erzeugen = pipeline("text-classification", model = 'mboth/klassifizierungErzeugen')
klassifikation_luft_versorgen = pipeline("text-classification", model = 'mboth/klassifizierungLuftVersorgen')
klassifikation_luft_verteilen = pipeline("text-classification", model = 'mboth/klassifizierungLuftVerteilen')
klassifikation_kälte_versorgen = pipeline("text-classification", model = 'mboth/klassifizierungKaelteVersorgen')
klassifikation_medien_versorgen = pipeline("text-classification", model = 'mboth/klassifizierungMedienVersorgen')
klassifikation_sichern = pipeline("text-classification", model = 'mboth/klassifizierungSichern')
klassifikation_luft_bereitstellen = pipeline("text-classification", model = 'mboth/klassifizierungLuftBereitstellen')
klassifikation_datenpunkte_großes_modell = pipeline("zero-shot-classification", model = 'mboth/klassifizierungDatenpunkteNLI')

def predict(description, name):

    hypothese = 'Der Datenpunkt beschreibt: {}.'

    label_beziehen = ['Alarmmeldung', 'Anforderung', 'Messwert Außentemperatur', 'Betriebsstunden Pumpe', 'Grenzwert Vorlauftemperatur Sekundär', 'Sollwert Maximale Vorlauftemperatur', 'Sollwert Minimale Vorlauftemperatur', 'Offset Vorlauftemperatur',
            'Regler', 'Messwert Rücklauftemperatur Primär', 'Messwert Rücklauftemperatur Sekundär', 'Rückmeldung Handschaltung Ventil', 'Rückmeldung Handschaltung Klappe', 'Rückmeldung Betriebsart', 'Rückmeldung Ventil Rücklauf',
            'Sollwert Außentemperatur Maximal Tag', 'Sollwert Nachlaufzeit Pumpe', 'Schaltbefehl Anlage', 'Schaltbefehl Pumpe', 'Sollwert Vorlauftemperatur', 'Stellbefehl Ventil', 'Störmeldung', 'Messwert Vorlauftemperatur Sekundär',
            'Zähler', 'Messwert Vorlauftemperatur Primär', 'Grenzwert Rücklauftemperatur Sekundär', 'Rückmeldung Handschaltung Fernwärme', 'Rückmeldung Stellsignal']
    label_speichern = ['Externe Vorrangschaltung Aktiv', 'Rückmeldung Zeitplan','Sollwert Maximale Hysterese Speichertemperatur','Sollwert Speichertemperatur','Sollwert Speichertemperatur Unten','Messwert Speichertemperatur','Messwert Speichertemperatur Mitte'
            'Messwert Speichertemperatur Oben','Messwert Speichertemperatur Unten','Störmeldung','Rückmeldung Zeitplan']

    label_kessel = ['Anforderung', 'Anzahl Schaltungen', 'Betriebsstunden','Messwert Druck','Freigabe','Messwert Temperatur','Regler','Reset Betriebsstunden','Rückmeldung Betrieb','Rückmeldung Klappe','Rückmeldung Stellsignal'
              'Rückmeldung Handschaltung','Rückmeldung Leistung','Rückmeldung Not Aus','Schaltbefehl Not Aus','Sollwert Temperatur','Sollwert Wartezeit','Sollwert Leistung','Schaltbefehl Anlage','Stellbefehl Anlage','Störmeldung','Überhöhung Kesselanlage',
              'Wartungsmeldung','Sollwert Einschaltverzögerung','Sollwert Abschaltung','Schaltbefehl Klappe']
    label_bhkw = ['Betriebsstunden','Laufzeit Nächste Wartung','Messwert Abgastemperatur','Messwert Gasverbrauch','Messwert Spannung','Messwert Strom','Messwert Temperatur Generator','Rückmeldung Ölnachspeisung Aktiv'
              'Rückmeldung Start', 'Rückmeldung Handschaltung','Rückmeldung Batterie','Schaltbefehl Anlage','Störmeldung','Warnmeldung','Wartungsmeldung','Rückmeldung Betrieb']
    label_wärmepumpe = ['Rückmeldung-Handschaltung-Brunnenpumpe','Rückmeldung-Betriebsbereit','Rückmeldung-Betriebsbereit','Rückmeldung-Blockierschutz-Umwälzpumpe','Rückmeldung-Blockierschutz-Brunnenpumpe','Rückmeldung-Umschaltventil-Zu',
              'Störmeldung','Zähler-Volumenstrom-Förderbrunnen']
    label_pelletkessel = ['Rückmeldung Schnecke Leer','Rückmeldung Betrieb','Messwert Außentemperatur','Messwert Primärluft','Restsauerstoff','Messwert Temperatur Einschubrohr']

    label_pumpe = ['Anzahl-Schaltungen','Betriebsstunden','Messwert Durchfluss','Messwert Energieverbrauch','Messwert Leistungsaufnahme','Messwert Stromaufnahme','Messwert Drehzahl','Reset Betriebsstunden','Rückmeldung Handschaltung Pumpe',
                    'Rückmeldung Betrieb','Schaltbefehl','Schaltbefehl Blockierschutz','Sollwert Frostschutz','Sollwert Laufzeit Blockierschutz','Sollwert Nacht','Sollwert Nachlaufzeit','Sollwert Tag','Status Übersteuern Ein','Störmeldung','Wartungsintervall']
    label_ventil = ['Handschaltung','Laufzeit 3 Punkt Antrieb','Rückmeldung Handschaltung','Rückmeldung Stellsignal','Sollwert Stellsignal Min','Sollwert Stellsignal Max','Stellbefehl','Störmeldung','Stellbefehl Max','Stellbefehl Min',
                    'Sollwert Mischventil','Laufzeit Ventil']
    label_raum = ['Freigabe Heizung','Freigabe Raumkorrektur','Freigabe Stützbetrieb Nacht Ventil','Freigabe Stützbetrieb','Freigabe Stützbetrieb Tag Ventil','Freigabe Stellantrieb','Freigabe Zeitprogramm','Messwert Raumtemperatur',
                  'Rückmeldung Normalbetrieb','Rückmeldung Ventil Handschaltung','Schaltbefehl Raumkorrektur','Sollwert Raumkorrektur','Sollwert Raumtemperatur Tag','Sollwert Raumtemperatur Nacht','Sollwert minimale Raumtemperatur',
                  'Sollwertverschiebung','Sollwert Stützbetrieb Tag','Sollwert Stützbetrieb Nacht','Sollwert Aufheizbetrieb','Stellbefehl','Aktivierung Raumoptimierung','Rückmeldung Aufheizbetrieb','Rückmeldung Absenkbetrieb']
    label_vorlauf = ['Anhebung Vorlauftemperatur','Messwert Vorlauftemperatur','Sollwert- orlauftemperatur','Sollwert Maximale Vorlauftemperatur','Sollwert Minimale Vorlauftemperatur','Sollwert Nachtabsenkung Vorlauftemperatur',
                      'Störmeldung','Rückmeldung Sollwertabweichung Vorlauftemperatur','Sollwertkorrektur Vorlauftemperatur']
    label_rücklauf = ['Messwert Rücklauftemperatur','Sollwert Maximale Rücklauftemperatur','Sollwert Minimale Rücklauftemperatur','Sollwert Rücklauftemperatur','Rohrheizung']
    label_heizkreis_allgemein = ['Alarmmeldung','Aktuelle Leistung','Grenzwert Frost','Heizkurve','Messwert Außentemperatur','Regler','Rückmeldung Nutzzeitverlängerung','Schaltbefehl Anlage','Schaltbefehl Nutzzeitverlängerung',
                                  'Schaltbefehl Nachtabsenkung','Sollwert Maximale Aufheizzeit','Sollwert Aufheizzeit','Sollwert Nachtabsenkung','Sollwert Nutzzeitverlängerung','Sollwert Speicherfähigkeit','Sollwert Stützbetrieb Tag','Sollwert Überhöhung Hydraulische Weiche',
                                  'Stützbetrieb Nacht Erreicht','Warmwasserbereitung','Parallelverschiebung','Rückmeldung Tagbetrieb','Störmeldung','Wärmemengenzähler','Sollwert Minimale Außentemperatur','Sollwert Außentemperatur','Rückmeldung Betriebsart',
                                  'Rückmeldung Zeitplan','Rückmeldung Regelabweichung','Sollwert Abschalten Stützbetrieb','Schaltbefehl Start Stop Optimierung','Schaltbefehl Gleitendes Schalten','Schaltbefehl Zeitprogramm']

    label_abluft_allgemein = ['Alarmmeldung','Befehlsausführkontrolle','Messwert Druck','Messwert Feuchte','Messwert Temperatur','Messwert Luftqualität','Messwert Volumenstrom','Rückmeldung Handschaltung','Rückmeldung Nutzzeitverlängerung',
                              'Rückmeldung Ventil','Rückmeldung Zeitplan','Schaltbefehl Anlage','Sollwert Druck','Sollwert Feuchte','Sollwert Temperatur','Sollwert CO2 Konzentration','Sollwert Volumenstrom','Störmeldung',
                              'Warnmeldung CO2 Hoch','Warnmeldung Feuchte','Warnmeldung Temperatur Hoch','Warnmeldung Temperatur Niedrig','Wartungsmeldung']
    label_abluftventilator = ['Alarmmeldung','Anzahl Schaltungen','Befehlausführungskontrolle','Betriebsstunden','Messwert Differenzdruck','Messwert Volumenstrom','Reset Betriebsstunden','Rückmeldung Nutzzeitverlängerung',
                              'Rückmeldung Handschaltung','Rückmeldung Reperaturschalter','Rückmeldung Betrieb','Rückmeldung Zeitplan','Schaltbefehl','Sollwert Laufzeit','Sollwert FU','Stellbefehl','Störmeldung']
    label_zuluftventilator = ['Alarmmeldung', 'Anzahl Schaltungen', 'Befehlausführungskontrolle', 'Betriebsstunden', 'Messwert Differenzdruck', 'Messwert Volumenstrom', 'Reset Betriebsstunden', 'Rückmeldung Drehzahl',
              'Rückmeldung Nutzzeitverlängerung', 'Rückmeldung Handschaltung', 'Rückmeldung Reperaturschalter', 'Rückmeldung Stellsignal', 'Rückmeldung Betrieb', 'Rückmeldung Zeitplan', 'Rückmeldung Laufüberwachung',
              'Schaltbefehl', 'Sollwert Laufzeit', 'Sollwert Stellsignal', 'Stellbefehl', 'Störmeldung', 'Wartungsmeldung']
    label_zuluft_allgemein = ['Alarmmeldung Frostschutz', 'Alarmmeldung', 'Befehlsausführkontrolle', 'Messwert Druck', 'Messwert Feuchte', 'Messwert Temperatur', 'Messwert Luftqualität', 'Messwert Volumenstrom', 'Rückmeldung Handschaltung',
            'Rückmeldung Nutzzeitverlängerung','Rückmeldung Ventil', 'Rückmeldung Zeitplan', 'Rückmeldung Grenzwert Soll Ist Abweichung Temperatur', 'Sollwert Grenzwert Soll Ist Abweichung Temperatur', 'Schaltbefehl Anlage', 
            'Sollwert Druck', 'Sollwert Feuchte', 'Sollwert Feuchte Max', 'Sollwert Feuchte Min', 'Sollwert Frostschutz', 'Sollwert Temperatur', 'Sollwert Temperatur Min', 'Sollwert Temperatur Max', 'Sollwert CO2-Konzentration', 
            'Sollwert CO2-Konzentration Max', 'Sollwert Volumenstrom', 'Sollwert Volumenstrom Max', 'Sollwert Volumenstrom Min', 'Störmeldung', 'Warnmeldung CO2 Hoch', 'Warnmeldung Feuchte', 'Warnmeldung Temperatur Hoch', 
            'Warnmeldung Temperatur Niedrig', 'Wartungsmeldung']
    label_klappe = ['Alarmmeldung', 'Befehlsausführkontrolle','Rückmeldung Betrieb', 'Rückmeldung Klappe Auf', 'Rückmeldung Klappe Zu', 'Rückmeldung Handschaltung', 'Rückmeldung Stellsignal', 'Schaltbefehl', 'Störmeldung', 'Stellbefehl', 'Sollwert Stellsignal']
    label_befeuchter = ['Rückmeldung Betrieb','Betriebsstunden','Sollwert Befeuchten','Stellbefehl','Störmeldung','Schaltbefehl']
    label_entrauchung = ['Rückmeldung Betrieb','Wartungsmeldung','Störmeldung','Schaltbefehl']
    label_erhitzer = ['Alarmmeldung','Anzahl Schaltungen','Betriebsstunden','Messwert Durchfluss','Messwert Energieverbrauch','Messwert Leistungsaufnahme','Messwert Rücklauftemperatur','Messwert Stromaufnahme',
                      'Messwert Vorlauftemperatur','Messwert Drehzahl','Reset Betriebsstunden','Rückmeldung Handschaltung Pumpe','Rückmeldung Handschaltung Ventil','Rückmeldung Betrieb','Rückmeldung Stellsignal','Schaltbefehl',
                      'Schaltbefehl Blockierschutz','Schaltbefehl Frostschutz','Sollwert Frostschutz','Sollwert Laufzeit Blockierschutz','Sollwert Nacht','Sollwert Nachlaufzeit','Sollwert Dauerfreigabe','Sollwert Tag',
                      'Status Übersteuern-Ein','Stellbefehl Ventil','Störmeldung','Wartungsintervall','Wartungsmeldung','Grenzwert Rücklauftemperatur']
    label_filter = ['Messwert Druck','Wartungsmeldun -Abluft','Wartungsmeldung Zuluft','Wartungsmeldung Fortluft','Wartungsmeldung Außenluft','Wartungsmeldung Filter','Störmeldung']
    label_gerät_allgemein = ['Alarmmeldung','Anforderung Tableau','Messwert Außentemperatur','Sollwert Kühlbedarf','Schaltbefehl Anlage','Übersteuert','Rückmeldung Anfahrbetrieb','Rückmeldung Batterie',
                            'Rückmeldung Betrieb','Rückmeldung Handschaltung','Rückmeldung Quittierung','Rückmeldung Freie Nachtkühlung','Rückmeldung Ferienprogramm','Rückmeldung Nutzzeitverlängerung','Rückmeldung Restlaufzeit Nutzzeitverlängerung',
                            'Rückmeldung Spülen','Schaltbefehl Nachtkühlung','Schaltbefehl Optimierte Luftqualität','Schaltbefehl Tagesprogramm','Schaltbefehl Nutzzeitverlängerung','Sollwert Feuchte','Sollwert Spülzeit','Sollwert Freie-Nachtkühlung',
                            'Sollwert Nutzzeitverlängerung','Sollwert Wärmebedarf','Sollwert Maximale Einschaltverzögerung','Störmeldung','Rückmeldung Anlage Fern','Schaltbefehl Anlage Fern']
    label_kühler = ['Alarm Frostschutz','Anzahl Schaltungen','Betriebsstunden','Messwert Rücklauftemperatur','Messwert Vorlauftemperatur','Rückmeldung Klappe Auf','Rückmeldung Betrieb','Rückmeldung Stellsignal',
                    'Sollwert Kühlbedarf','Stellbefehl Ventil','Zählwert Kühlwasser','Zählwert Kältemenge']
    label_raum_rlt = ['Alarmmeldung','Alarme Zurück Gestellt','Betriebsmeldung Präsenzmelder','Messwert Feuchte','Messwert CO2','Messwert Raumtemperatur','Rückmeldung Betrieb','Rückmeldung Ventil','Rückmeldung Klappe Auf',
                    'Rückmeldung Kommunikation','Sollwert Ausschaltverzögerung','Sollwert Einschaltverzögerung','Sollwert CO2','Sollwert CO2 Max','Sollwert Feuchte','Sollwert Raumtemperatur','Störmeldung','Warnmeldung CO2 Hoch',
                    'Warnmeldung Feuchte','Warnmeldung Temperatur Hoch','Warnmeldung Temperatur Niedrig']
    label_umluft = ['Rückmeldung Klappe Auf','Rückmeldung Klappe Zu','Schaltbefehl','Stellbefehl','Rückmeldung Betrieb','Rückmeldung Handschaltung']
    label_vsr = ['Schaltbefehl','Rückmeldung Stellsignal','Stellbefehl','Rückmeldung Handschaltung']
    label_wrg = ['Alarmmeldung','Messwert Temperatur Austritt Zuluft','Messwert Temperatur Eintritt Zuluft','Messwert Temperatur Eintritt Abluft','Messwert Temperatur Austritt Abluft','Messwert Vorlauftemperatur',
                'Pumpe','Rückmeldung Betrieb','Rückmeldung Handschaltung','Rückmeldung Stellsignal','Schaltbefehl','Sollwert Frostschutz','Sollwert Stellsignal','Sollwert Stellsignal Min','Sollwert Stellsignal Max','Stellbefehl',
                'Stellbefehl WRG Bypass','Störmeldung']

    #completion = model(prompt)[0]["generated_text"]
    datapoint = 'Beschreibung: ' + description + '; Name: ' + name
    #print(datapoint)
    klass_grundfunktion = model(datapoint)
    #print(completion[0]['label'])
    #return completion[0]['label']
    score = round((klass_grundfunktion[0]['score'] * 100), 2)
    grundfunktion = 'Die Grundfunktion des Datenpunktes lautet: '+ str(klass_grundfunktion[0]['label'])+ ' mit einem Score von: '+ str(score) + ' %'

    if klass_grundfunktion[0]['label'] == 'WaermeVersorgen':
      klasse = klassifikation_waerme_versorgen(datapoint)
      score_klasse = round((klasse[0]['score'] * 100), 2)
      klasse_string = 'Die zweite Grundfunktion des Datenpunktes lautet: ' + str(klasse[0]['label']) + ' mit einem Score von: '+ str(score_klasse) + ' %'
      if klasse[0]['label'] == 'Verteilen':
        klasse_komponente = klassifikation_waerme_verteilen(datapoint)
        score_komponente = round((klasse_komponente[0]['score'] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: ' + str(klasse_komponente[0]['label']) + ' mit einem Score von: '+ str(score_komponente) + ' %'
        if klasse_komponente[0]['label'] == 'Pumpe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_pumpe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Ventil':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_ventil)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Raum':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_raum)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Vorlauf':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_vorlauf)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Ruecklauf':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_rücklauf)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'HeizkreisAllgemein':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_heizkreis_allgemein)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'

      elif klasse[0]['label'] == 'Erzeugen':
        klasse_komponente = klassifikation_waerme_erzeugen(datapoint)
        score_komponente = round((klasse_komponente[0]['score'] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: ' + str(klasse_komponente[0]['label']) + ' mit einem Score von: '+ str(score_komponente) + ' %'
        if klasse_komponente[0]['label'] == 'Kessel':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_kessel)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'BHKW':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_bhkw)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Wärmepumpe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_wärmepumpe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Pelletkessel':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_pelletkessel)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'WaermeversorgerAllgemein':
          datenpunkt_string = 'Noch nicht ausgeprägt'

      elif klasse[0]['label'] == 'Beziehen':
        datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_beziehen)
        score_dp = round((datenpunkt['scores'][0] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: Fernwärme'
        datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
      elif klasse[0]['label'] == 'Speichern':
        datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_speichern)
        score_dp = round((datenpunkt['scores'][0] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: Speicher'
        datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'

    elif klass_grundfunktion[0]['label'] == 'LuftVersorgen':
      klasse = klassifikation_luft_versorgen(datapoint)
      score_klasse = round((klasse[0]['score'] * 100), 2)
      klasse_string = 'Die zweite Grundfunktion des Datenpunktes lautet: ' + str(klasse[0]['label']) + ' mit einem Score von: '+ str(score_klasse) + ' %'

      if klasse[0]['label'] == 'LuftVerteilen':
        klasse_komponente = klassifikation_luft_verteilen(datapoint)
        score_komponente = round((klasse_komponente[0]['score'] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: ' + str(klasse_komponente[0]['label']) + ' mit einem Score von: '+ str(score_komponente) + ' %'
        print(klasse_komponente_string)
        if klasse_komponente[0]['label'] == 'Raum':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_raum_rlt)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'VolumenstromreglerAbluft':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_vsr)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'VolumenstromreglerZuluft':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_vsr)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'

      elif klasse[0]['label'] == 'LuftBereitstellen':
        klasse_komponente = klassifikation_luft_bereitstellen(datapoint)
        score_komponente = round((klasse_komponente[0]['score'] * 100), 2)
        klasse_komponente_string = 'Die Komponente des Datenpunktes lautet: ' + str(klasse_komponente[0]['label']) + ' mit einem Score von: '+ str(score_komponente) + ' %'
        print(klasse_komponente_string)
        if klasse_komponente[0]['label'] == 'ZuluftAllgemein':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_zuluft_allgemein)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'AbluftAllgemein':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_abluft_allgemein)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Abluftventilator':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_abluftventilator)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Zuluftventilator':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_zuluftventilator)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Fortluftklappe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_klappe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Außenluftklappe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_klappe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Abluftklappe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_klappe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Zuluftklappe':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_klappe)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Befeuchter':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_befeuchter)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Entrauchung':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_entrauchung)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Erhitzer':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_erhitzer)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Filter':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_filter)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'GerätAllgemein':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_gerät_allgemein)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Kühler':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_kühler)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Umluft':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_umluft)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'
        elif klasse_komponente[0]['label'] == 'Wärmerückgewinnung':
          datenpunkt = klassifikation_datenpunkte_großes_modell(sequences = datapoint, hypothesis_template = hypothese, candidate_labels = label_wrg)
          score_dp = round((datenpunkt['scores'][0] * 100), 2)
          datenpunkt_string = 'Der Datenpunkt lautet: ' + str(datenpunkt['labels'][0]) + ' mit einem Score von: '+ str(score_dp) + ' %'

        elif klasse_komponente[0]['label'] == 'Regler':
          datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'MedienVersorgen':
      klasse = klassifikation_medien_versorgen(datapoint)
      score_klasse = round((klasse[0]['score'] * 100), 2)
      klasse_string = 'Die zweite Grundfunktion des Datenpunktes lautet: ' + str(klasse[0]['label']) + ' mit einem Score von: '+ str(score_klasse) + ' %'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'Sichern':
      klasse = klassifikation_sichern(datapoint)
      score_klasse = round((klasse[0]['score'] * 100), 2)
      klasse_string = 'Die zweite Grundfunktion des Datenpunktes lautet: ' + str(klasse[0]['label']) + ' mit einem Score von: '+ str(score_klasse) + ' %'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'KaelteVersorgen':
      klasse = klassifikation_kälte_versorgen(datapoint)
      score_klasse = round((klasse[0]['score'] * 100), 2)
      klasse_string = 'Die zweite Grundfunktion des Datenpunktes lautet: ' + str(klasse[0]['label']) + ' mit einem Score von: '+ str(score_klasse) + ' %'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'StromVersorgen':
      klasse_string = 'Noch nicht ausgeprägt'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'AndereAnlagen':
      klasse_string = 'Noch nicht ausgeprägt'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    elif klass_grundfunktion[0]['label'] == 'Befoerdern':
      klasse_string = 'Noch nicht ausgeprägt'
      klasse_komponente_string = 'Noch nicht ausgeprägt'
      datenpunkt_string = 'Noch nicht ausgeprägt'

    return [grundfunktion, klasse_string, klasse_komponente_string, datenpunkt_string]
    
title = 'Klassifizierung Datenpunkte'
gr.Interface(fn = predict, inputs = [gr.Textbox(label="Description:", placeholder="z.B. Schaltbefehl Pumpe", lines=1), gr.Textbox(label="Name:", placeholder="z.B. 101HZG401PU101SB", lines=1)], 
             title = title, examples=[["Schaltbefehl Zul.-Ventilator", '101RLT204ZU405VE202SB'], ["Vorl. Temp.", '101HZG204VL405MW']], theme = 'huggingface',
             outputs = [gr.Textbox(label = 'Grundfunktion'),gr.Textbox(label = 'Funktion Ebene 2'), gr.Textbox(label = 'Komponente'),gr.Textbox(label = 'Datenpunkt')]).launch()