Este repositorio contiene el backend de la plataforma ChatULL, desarrollada para mi Trabajo de Fin de Grado (TFG). ChatULL es un chatbot que responde preguntas relacionadas con documentos universitarios utilizando técnicas de prompt engineering para proporcionar respuestas precisas después de un tratamiento minucioso de la información.
ChatULL es una plataforma diseñada para ayudar a los estudiantes y personal universitario a obtener respuestas rápidas y precisas sobre diversos documentos universitarios. Utiliza procesamiento de lenguaje natural y técnicas de prompt engineering para interpretar las preguntas y proporcionar respuestas basadas en la información contenida en los documentos.
Para comenzar, siga estos pasos:
Clone este repositorio:
git clone https://github.com/ULL-prompt-engineering/chatull-backend.git
cd chatull-backend
Cree un entorno virtual:
python -m venv env
source env/bin/activate # En Windows use `env\Scripts\activate`
Instale las dependencias:
pip install -r requirements.txt
Para iniciar el servidor, ejecute el siguiente comando:
flask run
El servidor se iniciará en http://127.0.0.1:5000.
POST /set_api_key
Este endpoint se utiliza para configurar la API key y obtener un token JWT.
{
"api_key": "tu_api_key"
}
{
"message": "API key guardada exitosamente",
"jwt": "tu_token_jwt"
}
GET /get_answer
Este endpoint se utiliza para obtener una respuesta a una pregunta sobre una materia específica. Requiere un token JWT válido.
- Headers:
- `Authorization`: `Bearer tu_token_jwt`
- Query Parameters:
- `question`: La pregunta que se desea hacer.
- `subject`: La materia sobre la cual se hace la pregunta.
Ejemplo:
http://servidor/get_answer?question=pregunta&subject=materia
{
"answer": "respuesta_formateada"
}
GET /get_regulation_answer
Este endpoint se utiliza para obtener una respuesta a una pregunta sobre una regulación. Requiere un token JWT válido.
- Headers:
- `Authorization`: `Bearer tu_token_jwt`
- Query Parameters:
- `question`: La pregunta que se desea hacer.
Ejemplo:
http://servidor/get_regulation_answer?question=pregunta
{
"answer": "respuesta_formateada"
}
GET /documents
Este endpoint devuelve una lista de todos los documentos disponibles, incluyendo materias y regulaciones.
No requiere de parametros adicionales
[
{
"name": "nombre_de_la_materia"
},
{
"name": "nombre_de_la_regulación"
},
...
]
GET /logs
Este endpoint devuelve los registros de tiempo guardados en el archivo times.csv para cada una de las preguntas realizadas.
No requiere de parametros adicionales
[
"question1, answer1, duration1",
"question2, answer2, duration2",
...
]
Para cualquier duda o consulta, por favor contacta con jonayve.dev@gmail.com
¡Gracias por utilizar ChatULL!