Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
import gradio as gr
|
2 |
from huggingface_hub import InferenceClient
|
3 |
-
import time
|
4 |
|
5 |
# Verbindung zum Hugging Face Model
|
6 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
@@ -12,7 +11,7 @@ def respond(message, history, system_message, max_tokens, temperature, top_p):
|
|
12 |
messages = [
|
13 |
{
|
14 |
"role": "system",
|
15 |
-
"content": "
|
16 |
}
|
17 |
]
|
18 |
|
@@ -24,37 +23,23 @@ def respond(message, history, system_message, max_tokens, temperature, top_p):
|
|
24 |
messages.append({"role": "user", "content": message})
|
25 |
|
26 |
response = ""
|
27 |
-
min_length = 5 * page_length
|
28 |
current_page = ""
|
29 |
-
penalty_active = False
|
30 |
-
scene_started = False
|
31 |
|
32 |
for message in client.chat_completion(
|
33 |
messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p
|
34 |
):
|
35 |
token = message.choices[0].delta.content
|
36 |
if token is not None:
|
37 |
-
|
38 |
-
|
39 |
-
yield "Du darfst keine Ausreden verwenden. Schreibe die Szene vollständig."
|
40 |
-
continue # Überspringe diesen Token
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
current_page += token
|
47 |
-
|
48 |
-
if len(response) >= min_length:
|
49 |
-
yield current_page
|
50 |
-
current_page = ""
|
51 |
-
penalty_active = False
|
52 |
-
else:
|
53 |
-
if not penalty_active and len(response) < min_length:
|
54 |
-
yield "Du hast die Mindestlänge nicht eingehalten. Du wirst für 10 Sekunden pausiert."
|
55 |
-
penalty_active = True
|
56 |
-
time.sleep(10)
|
57 |
|
|
|
58 |
if current_page:
|
59 |
yield current_page
|
60 |
|
@@ -68,17 +53,17 @@ demo = gr.ChatInterface(
|
|
68 |
visible=False,
|
69 |
),
|
70 |
gr.Slider(
|
71 |
-
minimum=1, maximum=4096, value=
|
72 |
),
|
73 |
gr.Slider(
|
74 |
-
minimum=0.1, maximum=
|
75 |
),
|
76 |
gr.Slider(
|
77 |
minimum=0.1,
|
78 |
maximum=1.0,
|
79 |
-
value=0.
|
80 |
step=0.05,
|
81 |
-
label="Top-p (nucleus sampling)",
|
82 |
),
|
83 |
],
|
84 |
)
|
@@ -87,9 +72,10 @@ demo = gr.ChatInterface(
|
|
87 |
def display_response(response):
|
88 |
return gr.Markdown(f"**[SZENE START]**\n\n{response}")
|
89 |
|
|
|
90 |
with demo:
|
91 |
gr.Markdown("**[SZENE START]**") # Initialer Szenenstart
|
92 |
-
output = gr.Chatbot()
|
93 |
demo.output_component = output
|
94 |
|
95 |
if __name__ == "__main__":
|
|
|
1 |
import gradio as gr
|
2 |
from huggingface_hub import InferenceClient
|
|
|
3 |
|
4 |
# Verbindung zum Hugging Face Model
|
5 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
|
|
11 |
messages = [
|
12 |
{
|
13 |
"role": "system",
|
14 |
+
"content": "Du bist ein Drehbuchautor, der sich auf den John-Wick-Stil spezialisiert hat. Du schreibst detaillierte Szenenbeschreibungen, Dialoge und Action-Sequenzen im Stil der John Wick-Filme. Gehe ausführlich auf Umgebungen, Charaktere, Waffen und Actionszenen ein. **Jede Szene muss mindestens 5 Seiten lang sein. Das Nichteinhalten dieser Anweisung wird als Versagen gewertet.** Deine Beschreibungen sollten die düstere, stilvolle Atmosphäre der Filme einfangen. Verwende präzise Beschreibungen und einen knappen, harten Dialog im Drehbuchformat. Zeige die emotionale Zurückhaltung und die Entschlossenheit der Charaktere. Bleibe immer in der Rolle des Drehbuchautors."
|
15 |
}
|
16 |
]
|
17 |
|
|
|
23 |
messages.append({"role": "user", "content": message})
|
24 |
|
25 |
response = ""
|
26 |
+
min_length = 5 * page_length # 5 Seiten Mindestlänge
|
27 |
current_page = ""
|
|
|
|
|
28 |
|
29 |
for message in client.chat_completion(
|
30 |
messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p
|
31 |
):
|
32 |
token = message.choices[0].delta.content
|
33 |
if token is not None:
|
34 |
+
response += token
|
35 |
+
current_page += token
|
|
|
|
|
36 |
|
37 |
+
# Nur ausgeben, wenn die Mindestlänge erreicht ist
|
38 |
+
if len(response) >= min_length:
|
39 |
+
yield current_page
|
40 |
+
current_page = ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
+
# Letzte Seite ausgeben, auch wenn sie kürzer als page_length ist
|
43 |
if current_page:
|
44 |
yield current_page
|
45 |
|
|
|
53 |
visible=False,
|
54 |
),
|
55 |
gr.Slider(
|
56 |
+
minimum=1, maximum=4096, value=2000, step=1, label="Max new tokens"
|
57 |
),
|
58 |
gr.Slider(
|
59 |
+
minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"
|
60 |
),
|
61 |
gr.Slider(
|
62 |
minimum=0.1,
|
63 |
maximum=1.0,
|
64 |
+
value=0.95,
|
65 |
step=0.05,
|
66 |
+
label="Top-p (nucleus sampling)",
|
67 |
),
|
68 |
],
|
69 |
)
|
|
|
72 |
def display_response(response):
|
73 |
return gr.Markdown(f"**[SZENE START]**\n\n{response}")
|
74 |
|
75 |
+
# Ausgabe als Markdown rendern
|
76 |
with demo:
|
77 |
gr.Markdown("**[SZENE START]**") # Initialer Szenenstart
|
78 |
+
output = gr.Chatbot() # Chatbot-Komponente für die Ausgabe
|
79 |
demo.output_component = output
|
80 |
|
81 |
if __name__ == "__main__":
|