commons_base / app.py
MB55's picture
Update app.py
483a05d 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: Bevor ein neuer Schüler in die Schule gehen kann, muss er was mit der Schulverwaltung klären?
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>Bevor ein neuer Schüler in die Schule gehen kann, muss er was mit der Schulverwaltung klären? </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()