01. Examen Chatgp

ChatGPT aplicar y calificar Examen

En un mundo cada vez más impulsado por la inteligencia artificial, la adopción de estas tecnologías avanzadas está redefiniendo cómo abordamos problemas cotidianos, incluso en áreas como la educación y la evaluación. Este artículo presentará un fascinante desarrollo en este campo: el uso de la potente IA, ChatGPT, para aplicar y calificar exámenes.

El presente artículo explora cómo un programa en Python, utilizando el modelo de lenguaje ChatGPT 3.5 Turbo de OpenAI, puede revolucionar nuestra forma de manejar exámenes y pruebas de conocimiento. Este programa no solo selecciona y presenta preguntas a los usuarios de un conjunto de datos en formato csv, sino que también analiza y evalúa sus respuestas para garantizar que sean coherentes y relevantes para las preguntas planteadas.

Nuestro enfoque se centra en cómo los avances en la inteligencia artificial, y en particular el procesamiento del lenguaje natural, pueden ser aprovechados para hacer que la evaluación sea más eficiente y objetiva, liberando a los profesionales de la educación para que se concentren en las tareas donde la interacción humana es insustituible.

Adentrémonos en el funcionamiento de este sistema innovador y examinemos cómo la combinación de la inteligencia artificial y la programación puede ofrecer nuevas oportunidades para mejorar y diversificar la evaluación del aprendizaje.

Paso 1: Instalación de dependencias

Necesitaremos instalar varias bibliotecas y herramientas para este proyecto. Las principales son:

  • openai: Este es el paquete oficial de Python para trabajar con la API de GPT-3 de OpenAI.
  • Flask: Un microframework web de Python que utilizaremos para crear la interfaz de usuario de nuestro programa.
  • jsonify: Un componente de Flask que nos permite convertir fácilmente datos de Python en JSON.
  • pandas: Una biblioteca de análisis y manipulación de datos para Python.

Puedes instalar todas estas bibliotecas utilizando pip, el administrador de paquetes de Python. En tu terminal, ejecuta el siguiente comando:

pip install openai flask jsonify pandas

Paso 2: Crear el archivo de Python y codificar el programa

Una vez que tengas todas las dependencias instaladas, puedes comenzar a desarrollar tu programa. Para hacerlo:

  • Crea un nuevo archivo de Python (por ejemplo, main.py).
  • Importa todas las bibliotecas necesarias.
  • Configura una aplicación Flask y define algunas rutas para manejar las solicitudes de los usuarios.
  • Configura la API de OpenAI, y escribe la lógica para generar preguntas científicas humorísticas y para responder a las respuestas del usuario.

Este código requerirá algún conocimiento de cómo funciona la API de OpenAI y cómo construir una aplicación web con Flask.

Paso 3: Prueba las preguntas y respuestas

Una vez que hayas terminado de escribir el código de tu programa, debes probarlo para asegurarte de que todo funcione como se espera. Ejecuta la aplicación Flask, abre la interfaz de usuario en un navegador web y empieza a interactuar con el sistema.

  • Haz preguntas científicas y observa las respuestas que genera el sistema.
  • Prueba diferentes tipos de respuestas para asegurarte de que el programa responde adecuadamente tanto a las respuestas correctas como incorrectas.
  • Asegúrate de que todas las partes del programa funcionen juntas sin problemas.

Estos son los pasos básicos que necesitarás seguir para desarrollar tu propio “Ofender al Humano con ChatGPT”. Recuerda, la diversión y el aprendizaje están garantizados en cada línea de código que escribas. ¡Buena suerte y diviértete codificando!

Pasa 4: Obtener la key de openia: https://platform.openai.com/

Instalamos el programa y dependencias

image 12

image 14
Instalamos python

image 15
Creamos una carpeta que le llamaremos ofenderHumano y creamos el archivo main.py
image 16
Nos movemos dentro de la carpeta e instalamos las dependencias

pip install openai flask jsonify pandas

Código en Python main.py

# IMPORTAMOS LOS MÓDULOS NECESARIOS
from flask import Flask, render_template, request, session, jsonify
import pandas as pd
import random
import openai

# INICIAMOS LA APLICACIÓN FLASK
app = Flask(__name__)

# CONFIGURAMOS LA LLAVE SECRETA PARA LA SESIÓN
app.config['SECRET_KEY'] = 'tusecretkey'

# CARGAMOS LAS PREGUNTAS Y RESPUESTAS DEL ARCHIVO CSV AL INICIO DEL PROGRAMA
df = pd.read_csv('preguntas.csv')
preguntas = df['pregunta'].tolist()
respuestas = df['respuesta'].tolist()

# RUTA PARA OBTENER LA PREGUNTA
@app.route('/pregunta', methods=['GET'])
def pregunta():
    # SI NO HAY UNA PREGUNTA Y UNA RESPUESTA ACTUAL EN LA SESIÓN, SELECCIONA UNA ALEATORIAMENTE Y LA ELIMINA DE LA LISTA DE PREGUNTAS Y RESPUESTAS
    if 'pregunta_actual' not in session or 'respuesta_actual' not in session:
        idx = random.choice(range(len(preguntas)))
        pregunta_seleccionada = preguntas[idx]
        respuesta_seleccionada = respuestas[idx]
        preguntas.pop(idx)
        respuestas.pop(idx)
        session['pregunta_actual'] = pregunta_seleccionada
        session['respuesta_actual'] = respuesta_seleccionada
    # DEVUELVE LA PREGUNTA ACTUAL
    return jsonify(pregunta=session['pregunta_actual'])

# RUTA PARA PROCESAR LA RESPUESTA
@app.route('/respuesta', methods=['POST'])
def respuesta():
    # OBTIENE LA RESPUESTA ENVIADA POR EL USUARIO
    respuesta_usuario = request.form.get('respuesta_txt')
    openai.api_key = "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"
    model_engine = "gpt-3.5-turbo"
    # CONFIGURAMOS LA INTERACCIÓN CON EL MODELO DE OPENAI
    sistema = f'Soy un modelo de evaluación. Vas a hacer esta pregunta "{session["pregunta_actual"]}" y esta es la respuesta correcta "{session["respuesta_actual"]}". Comparando la respuesta del usuario con la correcta, solo debes decir "bien" si la respuesta del usuario es correcta o "mal" si no lo es.'
    
    # CREAMOS LA CONVERSACIÓN CON EL MODELO DE OPENAI
    response = openai.ChatCompletion.create(
    model=model_engine,
    messages=[
            {"role": "system", "content": sistema},
            {"role": "user", "content": "Respuesta del usuario: "+respuesta_usuario},
        ]
    )

    respuesta_modelo = ""
    # OBTENEMOS LA RESPUESTA DEL MODELO
    for message in response['choices'][0]['message']['content']:
        respuesta_modelo += message

    # REEMPLAZAMOS CIERTOS CARACTERES
    respuesta_modelo = respuesta_modelo.replace("\\n", "\n")
    respuesta_modelo = respuesta_modelo.replace("\\", "")

    # ELIMINAMOS LA PREGUNTA Y RESPUESTA ACTUAL DE LA SESIÓN
    session.pop('pregunta_actual', None)
    session.pop('respuesta_actual', None)

    # DEVOLVEMOS LA RESPUESTA DEL MODELO
    return jsonify(respuesta=respuesta_modelo)

# RUTA DE INICIO
@app.route('/')
def home():
    # RENDERIZAMOS LA PÁGINA DE INICIO
    return render_template('home.html')

# EJECUTAMOS LA APLICACIÓN
if __name__ == '__main__':
    app.run(debug=True)

preguntas.csv

"pregunta","respuesta"
"¿Cuál es la capital de España?","Madrid"
"¿Cuántos días tiene una semana?","7"
"¿Qué planeta es conocido como el 'Planeta Rojo'?","Marte"
"¿Cuánto es 2 + 2?","4"
"¿Quién escribió 'Don Quijote de la Mancha'?","Miguel de Cervantes"
"¿Cuál es el estado gaseoso del agua?","Vapor"
"¿Cuántas letras tiene el alfabeto español?","27"
"¿De qué color se obtiene al mezclar amarillo y azul?","Verde"
"¿Qué animales construyen presas?","Castores"
"¿Cuánto es 10 - 5?","5"
"¿En qué continente está Egipto?","África"
"¿Qué animal es el rey de la selva?","León"
"¿Qué órgano bombea la sangre en el cuerpo humano?","Corazón"
"¿Cuál es el órgano que usamos para respirar?","Pulmones"
"¿Cuál es el número mínimo de jugadores en un equipo de fútbol?","11"

Probamos nuestro programa con postman

Descargamos postman aqui Download Postman | Get Started for Free y lo abrimos y ponemos la url http://127.0.0.1:5000/pregunta para obtener la pregunta

image 17

Ahora obtenemos la respuesta con esta url http://127.0.0.1:5000/respuesta?respuesta=no se pero en post

image 18

Código en GitHub: https://github.com/programadornovato/ExamenGPT

Los comentarios están cerrados.