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
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
Ahora obtenemos la respuesta con esta url http://127.0.0.1:5000/respuesta?respuesta=no se pero en post
Código en GitHub: https://github.com/programadornovato/ExamenGPT