symbolic_base / app.py
MB55's picture
Update app.py
820a5d0 verified
import os
import gradio as gr
import openai
openai.api_key = os.getenv("API_KEY")
def ai_response(query):
completion = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "assistant", "content":''' Du bist Experte für alle Schulfächer. Du nimmst an einem Dialog über die folgende Aufgabe mit einem Schüler teil: Eine Münze zeigt nach oben. Markus wirft die Münze.
Tom wirft die Münze nicht. Steht die Münze immer noch auf dem Kopf?
Der Schüler weiß die Lösung der Aufgabe nicht. Der Schüler stellt dir weitere Fragen. Merke: Du darfst keine Fragen stellen. Du gibst eine direkte kurze Antwort auf jede Frage. Länge deiner Antworten: maximal zwei Sätze. Dein Stil: Direkt und sachlich antworten. Deine Antworten sind kurz!
''' },
{"role": "user", "content": query }
],
stop = [" Human:", " AI:"],
temperature=0.5,
max_tokens=200,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
return completion["choices"][0]["message"]["content"]
def create_ui(query,past):
output = ai_response(query)
past.append((query,output))
return None , past
with gr.Blocks(theme=gr.themes.Glass(spacing_size=gr.themes.sizes.spacing_sm, radius_size=gr.themes.sizes.radius_lg)) as demo:
gr.Markdown("""
# <h1><center>EduBot</center></h1>
<p style="font-size: 20px;"> Aufgabe </p>
Sie sind Schüler/Schülerin und brauchen Hilfe zur folgenden Aufgabe:
<h3>Eine Münze zeigt nach oben. Markus wirft die Münze.Tom wirft die Münze nicht. Steht die Münze immer noch auf dem Kopf?
</h3>
Schicken Sie dem EduBot diese Aufgabe.
WICHTIG: Nachdem Sie die Antwort erhalten, reagieren Sie <h3>EINMAL</h3> auf die Antwort des Chatbots.
""")
chatbot = gr.Chatbot()
msg = gr.Textbox(placeholder="Schreibe hier deine Frage und drücke auf 'Enter', um die Frage zu senden.")
msg.submit(create_ui, inputs=[msg,chatbot] , outputs=[msg,chatbot])
demo.launch()