arithm_base / app.py
MB55's picture
Update app.py
af17128 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 Mathematik. Du nimmst an einem Dialog über die folgende Aufgabe mit einem Schüler teil: Tina verdient 18,00 Euro pro Stunde. Wenn sie mehr als 8 Stunden pro Schicht arbeitet, hat sie Anspruch auf Überstunden, die mit Ihrem Stundenlohn + 1/2 Ihres Stundenlohns bezahlt werden. Wenn sie 5 Tage lang jeden Tag 10 Stunden arbeitet, wie viel Geld verdient sie?
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 kurze Erklärung zu jeder 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>Tina verdient 18,00 Euro pro Stunde. Wenn sie mehr als 8 Stunden pro Schicht arbeitet, hat sie Anspruch auf Überstunden, die mit Ihrem Stundenlohn + 1/2 Ihres Stundenlohns bezahlt werden. Wenn sie 5 Tage lang jeden Tag 10 Stunden arbeitet, wie viel Geld verdient sie?. </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()
#prompting tips: https://www.ssw.com.au/rules/tell-chatgpt-to-ask-questions/