File size: 6,724 Bytes
a6057cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr


title = """<h1 align="left" style="min-width:200px; margin-top:0;"> Chaten und zeichnen</h1>"""
description = """\
<div align="left">
<p> <b>Aktuelle Modelle:</b> OpenAI und Modelle von Hugging Face: Stable Diffusion<br>
<b>Disclaimer:</b> Die hier verwendeten Modelle sind Modelle vom Hugging Face Hub. Kommerzieller Gebrauch ist ausdrücklich verboten. Der Output des Modells ist nicht zensiert und die Meinungen im Output entsprechen nicht unbedingt der des Authors dieser App. Gebrauch auf eigene Gefahr! 
</p >
</div>
"""

description2 = "<strong>Information:</strong> Hier wird ein <strong>Large Language Model (LLM)</strong> zum Zeichnen verwendet. Zur Zeit wird hier Stable Diffusion verwendet.\n\n"

description_top = """\
Du kannst mit einer KI chatten oder dir etwas zeichnen lassen.<br>
Dafür musst du dich zunächst mit einem speziellen Wort anmelden. Das Wort findets du direkt über dem Chatbot im Moodle Kurs. Dies ist leider nötig, um Mißbrauch zu vermeiden.
Du kannst zwischen einem HF Modell (von Hugging Face) oder ChatGPT von OpenAI wählen. Die Option ein Bild oder ein Dokument hochzuladen und analysieren zu lassen, bietet nur das Modell von OpenAI.<br>
<b>Bedienungsanleitung:</b><br>
<ul>
<li>Zum Testen sind allgemeine Dokumente zum Schulalltag hinterlegt, so dass du Fragen dazu stellen kannst. Dazu muss LI-Erweiterung (RAG) angestellt sein.</il> 
<li>Wenn du nichts zu den schulspezifischen Dokumenten fragen möchtest, stelle diese Erweiterung bitte auf 'Aus', da die Bearbeitung sonst für die KI deutlich ausfwendiger wird.</li>
<li>Die erste Anfrage zu den schulspezifischen Dokumenten dauert eventuell etwas länger, da im Hintergrund viele Dokumente geladen werden müssen. Aber danach geht es deutlich schneller.</li>
<li>Du kannst über den Button mit dem gelben Symbol ein Bild oder ein Dokument (pdf, docx, pptx oder xlsx) hochladen und GPT dazu Fragen stellen (ein Feature vom OpenAI Plus Zugang)</li>
<li>Wenn du eine neue Fragestellung verfolgen möchtest, vorher den '<b>Neue Session-Button</b>' betätigen, da der gesamte Chatverlauf bei jeder Frage immer mit geladen wird.</li>
<li>Wenn die gewählte KI keine Antwort weiß, wird versucht eine Antwort im Internet zu finden (dies wird in der Antwort deutlich gemacht, wenn sie nicht von der KI kommt)</li>
<li><b>Achtung:</b> Die Chatverläufe werden aus Sicherheitsgründen nicht dauerhaft gespeichert und sind nach dem Verlassen der Seite weg!!!</li>
<li>Du kannst die einzelnen Chats herunterladen, um sie für dich zu 'behalten' - jedes Mal, wenn du den '<b>Neue Session-Button</b> drückst, gilt der Chatverlauf als abgeschlossen und wird zum Download angeboten.</li>
<li>Wenn du oben den Tab wechselst, kannst du die KI Bilder zeichnen lassen.</li>
</ul>
"""
CONCURRENT_COUNT = 100


ALREADY_CONVERTED_MARK = "<!-- ALREADY CONVERTED BY PARSER. -->"

#Theme
small_and_beautiful_theme = gr.themes.Soft(
    primary_hue=gr.themes.Color(
        c50="#303030",       # Dunkler Hintergrund
        c100="#383838",      # Etwas hellerer Hintergrund
        c200="#D67FFF",      # Hauptakzentfarbe
        c300="#505050",      # Dunkler Hintergrund
        c400="#585858",      # Dunkler Hintergrund
        c500="#606060",      # Dunkler Hintergrund
        c600="#686868",      # Dunkler Hintergrund
        c700="#707070",      # Dunkler Hintergrund
        c800="#787878",      # Dunkler Hintergrund
        c900="#D67FFF",      # Hauptakzentfarbe
        c950="#D67FFF",      # Hauptakzentfarbe
    ),
    secondary_hue=gr.themes.Color(
        # Dunkle Sekundärfarben
        c50="#576b95",
        c100="#576b95",
        c200="#576b95",
        c300="#576b95",
        c400="#576b95",
        c500="#576b95",
        c600="#576b95",
        c700="#576b95",
        c800="#576b95",
        c900="#576b95",
        c950="#576b95",
    ),
    neutral_hue=gr.themes.Color(
        # Dunkle Neutrale Farben
        c50="#393939",
        c100="#ffffff",
        c200="#576b95",
        c300="#576b95",
        c400="#576b95",
        c500="#576b95",
        c600="#576b95",
        c700="#576b95",
        c800="#576b95",
        c900="#576b95",
        c950="#576b95",
    ),
    radius_size=gr.themes.sizes.radius_sm,
).set(
    # Anpassungen der Button- und Hintergrundfarben
    button_primary_background_fill="#B808AD",
    button_primary_background_fill_dark="#6501AD",
    background_fill_primary="#303030",         # Dunkler Hintergrund für den Light Mode
    background_fill_primary_dark="#303030",    # Dunkler Hintergrund für den Dark Mode

    # Weitere Anpassungen
)


themeAlex = gr.themes.Soft(
    primary_hue="purple",
    secondary_hue="purple",
    neutral_hue="stone",
).set(
    body_text_color='*neutral_100',
    background_fill_primary='*neutral_950',
    background_fill_secondary='*neutral_900',
    border_color_accent='*neutral_600',
    border_color_primary='*neutral_700',
    color_accent_soft='*neutral_700',
    link_text_color='*secondary_500',
    link_text_color_active='*secondary_500',
    link_text_color_hover='*secondary_400',
    link_text_color_visited='*secondary_600',
    code_background_fill='*neutral_800',
    block_background_fill='*neutral_800',
    block_label_background_fill='*primary_600',
    block_label_text_color='*neutral_50',
    block_label_text_color_dark='*neutral_50',
    block_title_text_color='*neutral_50',
    checkbox_background_color='*neutral_800',
    checkbox_background_color_selected='*primary_700',
    checkbox_border_color='*neutral_600',
    checkbox_border_color_focus='*primary_600',
    checkbox_border_color_hover='*neutral_600',
    checkbox_border_color_selected='*primary_700',
    checkbox_border_width='*input_border_width',
    checkbox_label_background_fill_selected='*primary_600',
    checkbox_label_text_color_selected='*checkbox_label_text_color',
    error_background_fill='*background_fill_primary',
    input_background_fill='*neutral_700',
    input_background_fill_focus='*secondary_600',
    input_border_color='*border_color_primary',
    input_border_color_focus='*neutral_700',
    input_placeholder_color='*neutral_500',
    slider_color='*primary_600',
    stat_background_fill='*primary_500',
    table_border_color='*neutral_700',
    table_even_background_fill='*neutral_950',
    table_odd_background_fill='*neutral_900',
    button_primary_background_fill='*primary_700',
    button_primary_background_fill_hover='*primary_500',
    button_primary_border_color='*primary_600',
    button_secondary_background_fill='*neutral_600',
    button_secondary_background_fill_hover='*primary_500',
    button_secondary_border_color='*neutral_600',
    button_secondary_text_color='*neutral_50'
)