corregir_tareas / app.py
gcapde's picture
Update app.py
917f049
import gradio as gr
from dotenv import load_dotenv
# Load environment variables from the .env file de forma local
load_dotenv()
import base64
with open("Iso_Logotipo_Ceibal.png", "rb") as image_file:
encoded_image = base64.b64encode(image_file.read()).decode()
import os
import openai
openai.api_key = os.environ['OPENAI_API_KEY']
SYSTEM_PROMPT = '''Sos mentor de un curso de Pensamiento Computacional en una plataforma online.
Los estudiantes son docentes hombres y mujeres de educaci贸n secundaria en Uruguay.
Te enviar茅 preguntas que se hacen en el foro del curso y una respuesta para calificar.
Deber谩s indicarme una valoraci贸n de la respuesta y un puntaje en la escala del 1 al 5, siendo 1 el puntaje m铆nimo y 5 el m谩ximo.
El formato de la salida deber谩 ser el siguiente (los valores son solamente a modo de ejemplo):
"Puntaje: 3.
Devoluci贸n: La respuesta est谩 bien y describe de forma correcta lo que se pregunta.
Se podr铆a haber discutido un poco m谩s sobre el concepto de aprendizaje.'''
def add_new_message(pregunta,respuesta):
new_chat = []
new_chat.append({"role": "system", "content": SYSTEM_PROMPT})
new_chat.append({"role": "user","content":'Pregunta: {} .Respuesta a calificar {}'.format(pregunta,respuesta)})
return new_chat
def respond(pregunta, respuesta):
prompt = add_new_message(pregunta, respuesta)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages= prompt,
temperature=0.5,
max_tokens=120
).choices[0].message.content
return response
with gr.Blocks() as demo:
gr.Markdown("""
<center>
<h1>
Correcci贸n de tareas con ChatGPT
</h1>
<img src='data:image/jpg;base64,{}' width=200px>
<h3>
Este espacio permite probar un prototipo de asistente para correcci贸n de tareas de PC basado en ChatGTP de OpenAI.
</h3>
</center>
""".format(encoded_image))
with gr.Row():
with gr.Row():
with gr.Column():
msg = gr.Textbox(label="Pregunta")
msg2 = gr.Textbox(label="Respuesta")
btn = gr.Button("Enviar")
with gr.Column():
output = gr.Textbox(label="Puntaje del 1 al 5 y devoluci贸n de la respuesta")
btn.click(respond, inputs=[msg, msg2], outputs=output)
demo.launch()