Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -233,6 +233,18 @@ def rag_chain(prompt, db, k=3):
|
|
| 233 |
return neu_prompt
|
| 234 |
|
| 235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 236 |
|
| 237 |
###################################################
|
| 238 |
#Prompts mit History erzeugen für verschiednee Modelle
|
|
@@ -406,7 +418,7 @@ print ("Start GUI")
|
|
| 406 |
with open("custom.css", "r", encoding="utf-8") as f:
|
| 407 |
customCSS = f.read()
|
| 408 |
|
| 409 |
-
with gr.Blocks(css=customCSS, theme=
|
| 410 |
history = gr.State([])
|
| 411 |
user_question = gr.State("")
|
| 412 |
|
|
@@ -495,7 +507,8 @@ with gr.Blocks(css=customCSS, theme=small_and_beautiful_theme) as demo:
|
|
| 495 |
temperature,
|
| 496 |
max_length_tokens,
|
| 497 |
max_context_length_tokens,
|
| 498 |
-
repetition_penalty
|
|
|
|
| 499 |
],
|
| 500 |
outputs=[ chatbot, status_display], #[ chatbot, history, status_display],
|
| 501 |
show_progress=True,
|
|
@@ -517,12 +530,16 @@ with gr.Blocks(css=customCSS, theme=small_and_beautiful_theme) as demo:
|
|
| 517 |
predict_event1 = user_input.submit(**transfer_input_args_text, queue=False,).then(**predict_args)
|
| 518 |
predict_event3 = btn.upload(**transfer_input_args_file,queue=False,).then(**predict_args)
|
| 519 |
predict_event2 = submitBtn.click(**transfer_input_args_text, queue=False,).then(**predict_args)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 520 |
|
| 521 |
cancelBtn.click(
|
| 522 |
cancel_outputing, [], [status_display],
|
| 523 |
#cancels=[predict_event1,predict_event2, predict_event3 ]
|
| 524 |
)
|
| 525 |
-
demo.title = "
|
| 526 |
|
| 527 |
demo.queue().launch(debug=True)
|
| 528 |
|
|
@@ -530,45 +547,3 @@ demo.queue().launch(debug=True)
|
|
| 530 |
|
| 531 |
|
| 532 |
|
| 533 |
-
|
| 534 |
-
|
| 535 |
-
|
| 536 |
-
|
| 537 |
-
"""
|
| 538 |
-
|
| 539 |
-
description = <strong>Information:</strong> Hier wird ein <strong>Large Language Model (LLM)</strong> mit
|
| 540 |
-
<strong>Retrieval Augmented Generation (RAG)</strong> auf <strong>externen Daten</strong> verwendet.\n\n
|
| 541 |
-
|
| 542 |
-
css = .toast-wrap { display: none !important }
|
| 543 |
-
examples=[['Was ist ChtGPT-4?'],['schreibe ein Python Programm, dass die GPT-4 API aufruft.']]
|
| 544 |
-
|
| 545 |
-
additional_inputs = [
|
| 546 |
-
gr.Radio(["Aus", "An"], label="RAG - LI Erweiterungen", value = "Aus"),
|
| 547 |
-
gr.Radio(["HuggingFace1", "HuggingFace2"], label="Modellauswahl", value = "HuggingFace1"),
|
| 548 |
-
gr.Slider(label="Anzahl Vergleichsdokumente", value=3, minimum=1, maximum=10, step=1, interactive=True, info="wie viele Dokumententeile aus dem Vektorstore an den prompt gehängt werden", visible=True),
|
| 549 |
-
gr.Slider(label="Temperature", value=0.65, minimum=0.0, maximum=1.0, step=0.05, interactive=True, info="Höhere Werte erzeugen diversere Antworten", visible=True),
|
| 550 |
-
gr.Slider(label="Max new tokens", value=1024, minimum=0, maximum=4096, step=64, interactive=True, info="Maximale Anzahl neuer Tokens", visible=True),
|
| 551 |
-
gr.Slider(label="Top-p (nucleus sampling)", value=0.6, minimum=0.0, maximum=1, step=0.05, interactive=True, info="Höhere Werte verwenden auch Tokens mit niedrigerer Wahrscheinlichkeit.", visible=True),
|
| 552 |
-
gr.Slider(label="Repetition penalty", value=1.2, minimum=1.0, maximum=2.0, step=0.05, interactive=True, info="Strafe für wiederholte Tokens", visible=True)
|
| 553 |
-
]
|
| 554 |
-
|
| 555 |
-
chatbot_stream = gr.Chatbot()
|
| 556 |
-
|
| 557 |
-
chat_interface_stream = gr.ChatInterface(fn=generate,
|
| 558 |
-
additional_inputs = additional_inputs,
|
| 559 |
-
additional_inputs_accordion = gr.Accordion(label="Weitere Eingaben...", open=False),
|
| 560 |
-
title = "ChatGPT vom LI",
|
| 561 |
-
theme="soft",
|
| 562 |
-
chatbot=chatbot_stream,
|
| 563 |
-
retry_btn="🔄 Wiederholen",
|
| 564 |
-
undo_btn="↩️ Letztes löschen",
|
| 565 |
-
clear_btn="🗑️ Verlauf löschen",
|
| 566 |
-
submit_btn = "Abschicken",
|
| 567 |
-
description = description)
|
| 568 |
-
|
| 569 |
-
with gr.Blocks() as demo:
|
| 570 |
-
with gr.Tab("Chatbot"):
|
| 571 |
-
#chatbot_stream.like(vote, None, None)
|
| 572 |
-
chat_interface_stream.queue().launch()
|
| 573 |
-
|
| 574 |
-
"""
|
|
|
|
| 233 |
return neu_prompt
|
| 234 |
|
| 235 |
|
| 236 |
+
|
| 237 |
+
########################################
|
| 238 |
+
# Bot- test gegen schädliche Bots die die Anwendung testen...
|
| 239 |
+
# Funktion zur Überprüfung der Benutzereingabe
|
| 240 |
+
# Funktion zur Überprüfung der Eingabe und Aktivierung der Hauptanwendung
|
| 241 |
+
def validate_input(user_input_validate, validate=False):
|
| 242 |
+
user_input_hashed = hash_input(user_input_validate)
|
| 243 |
+
if user_input_hashed == hash_input(ANTI_BOT_PW):
|
| 244 |
+
return "Richtig! Weiter gehts... ", True, gr.Textbox(visible=False), gr.Button(visible=False)
|
| 245 |
+
else:
|
| 246 |
+
return "Falsche Antwort!!!!!!!!!", False, gr.Textbox(label = "", placeholder="Bitte tippen Sie das oben im Moodle Kurs angegebene Wort ein, um zu beweisen, dass Sie kein Bot sind.", visible=True, scale= 5), gr.Button("Validieren", visible = True)
|
| 247 |
+
|
| 248 |
|
| 249 |
###################################################
|
| 250 |
#Prompts mit History erzeugen für verschiednee Modelle
|
|
|
|
| 418 |
with open("custom.css", "r", encoding="utf-8") as f:
|
| 419 |
customCSS = f.read()
|
| 420 |
|
| 421 |
+
with gr.Blocks(css=customCSS, theme=themeAlex) as demo:
|
| 422 |
history = gr.State([])
|
| 423 |
user_question = gr.State("")
|
| 424 |
|
|
|
|
| 507 |
temperature,
|
| 508 |
max_length_tokens,
|
| 509 |
max_context_length_tokens,
|
| 510 |
+
repetition_penalty,
|
| 511 |
+
validate
|
| 512 |
],
|
| 513 |
outputs=[ chatbot, status_display], #[ chatbot, history, status_display],
|
| 514 |
show_progress=True,
|
|
|
|
| 530 |
predict_event1 = user_input.submit(**transfer_input_args_text, queue=False,).then(**predict_args)
|
| 531 |
predict_event3 = btn.upload(**transfer_input_args_file,queue=False,).then(**predict_args)
|
| 532 |
predict_event2 = submitBtn.click(**transfer_input_args_text, queue=False,).then(**predict_args)
|
| 533 |
+
#Validation Button
|
| 534 |
+
# Event-Handler für die Validierung
|
| 535 |
+
validate_btn.click(validate_input, inputs=[user_input_validate, validate], outputs=[status_display, validate, user_input_validate, validate_btn])
|
| 536 |
+
user_input_validate.submit(validate_input, inputs=[user_input_validate, validate], outputs=[status_display, validate, user_input_validate, validate_btn])
|
| 537 |
|
| 538 |
cancelBtn.click(
|
| 539 |
cancel_outputing, [], [status_display],
|
| 540 |
#cancels=[predict_event1,predict_event2, predict_event3 ]
|
| 541 |
)
|
| 542 |
+
demo.title = "HH-ChatBot"
|
| 543 |
|
| 544 |
demo.queue().launch(debug=True)
|
| 545 |
|
|
|
|
| 547 |
|
| 548 |
|
| 549 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|