Este repositorio es parte del backend de la aplicacion class-connect, para conocer informacion mas general sobre
el proyecto visita el siguiente link Organization Homepage.
Este microservicio es el que posibilita tener un chat de asistencia en la plataforma. Entre sus responsabilidades se encuentra establecer una conexión con la API de Gemini, permitirle a los usuarios mandar preguntas que son procesadas para que puedan ser respondidas precisamente por Gemini y brindar la posibilidad de calificar las respuestas proporcionadas a dichas preguntas para mejorar el funcionamiento del chat de asistencia continuamente.
Los endpoints de este microservicio se pueden encontrar en el swagger del mismo (o alternativamente en la carpeta docs/),
los mismos son:
POST/chat (Hacerle una pregunta al bot, recibiendo una respuesta a cambio)POST/upvote/:chat_id (Calificar una respuersta como buena)POST/eqvote/:chat_id (Descalificar una respuesta, i.e. marcar una respuesta como ni buena ni mala)POST/upvote/:chat_id (Calificar una pregunta como mala, pudiendo recibir también un comentario explicando por que no gustó)
GET/refine (Recibir todas las conversaciones que hayan sido calificadas como buenas o malas)POST/refine (Subir a la base de datos una colección de Preguntas-Respuestas que hayan sido consideradas buenas para que la IA las reutilice cuando corresponda)DELETEchat/:chat_id (Borrar un chat)
Se utiliza la arquitectura package by layer, donde los controladores se pueden encontrar en la carpeta api, los servicios en services y los repositorios en db.
- Se hace feature branching desde la rama dev.
- Una vez listo para integrar se realiza PR a dev, donde corre el pipeline de testing y coverage.
- Una vez esta listo para desplegar se realiza PR a main, se vuelven a correr pipelines de calidad de codigo.
- Cuando se hace el push a main se ejecuta el pipeline de continous delivery, construye la imagen y la desplega a k8s.