Este repositorio no se mantiene y ha sido archivado.
Donkeybot es un sistema de respuesta a preguntas de un extremo a otro. Utiliza múltiples fuentes de datos, una tabla de preguntas frecuentes y modelos de lenguaje de aprendizaje por transferencia como BERT para responder las preguntas de soporte de Rucio.
El objetivo del proyecto GSoC 2020 es utilizar el procesamiento del lenguaje natural (NLP) para desarrollar un prototipo de bot inteligente capaz de proporcionar respuestas satisfactorias a los usuarios de Rucio y manejar solicitudes de soporte hasta un cierto nivel de complejidad, reenviando solo las restantes al expertos.
Donkeybot se puede ampliar y aplicar como un sistema de respuesta a preguntas según sus necesidades. Se requieren cambios en el código para utilizar Donkeybot para su caso de uso y datos específicos. La implementación actual se aplica a fuentes de datos específicas de Rucio.
Almacenamiento de datos : un almacenamiento de datos que contiene datos específicos del dominio de Rucio. La implementación actual del módulo está en SQLite por la rápida creación de prototipos que proporciona. Las fuentes de datos incluyen correos electrónicos de soporte seguros y anónimos de usuarios de Rucio, problemas de Rucio GitHub y documentación de Rucio.
Detección de preguntas : un módulo para la detección y extracción de preguntas de cualquier texto determinado. Esto se utiliza para extraer preguntas anteriores de los correos electrónicos de soporte y problemas de GitHub mediante el uso de expresiones regulares. Estas preguntas se archivan como documentos y se utilizan en los demás módulos.
Recuperación de documentos : un módulo de motor de búsqueda que utiliza el algoritmo BM25 para la recuperación de los n documentos más similares (preguntas formuladas anteriormente o documentación de Rucio) para que el módulo de detección de respuestas los utilice como contexto.
Detección de respuestas : el módulo de detección de respuestas que sigue tanto un enfoque de aprendizaje por transferencia como un enfoque supervisado.
Las características adicionales incluyen:
GUI de creación de preguntas frecuentes : el usuario puede utilizar una GUI proporcionada como interfaz para interactuar con el almacenamiento de datos, insertar preguntas frecuentes, volver a indexar el motor de búsqueda y ampliar la base de conocimientos de Donkeybot.
Hashing de nombres : un script que utiliza el etiquetador NER de Stanford para detectar información privada del usuario en los correos electrónicos de soporte y aplicar un hash. De este modo, se siguen las directrices de privacidad del CERN y se mantienen todos los datos anonimizados.
Consulte la documentación completa para obtener ejemplos, detalles operativos y otra información.
Consulte Preguntas frecuentes: GSoC para obtener un cronograma detallado, información de los estudiantes, problemas enfrentados, sugerencias de mejoras futuras, una lista de lectura y más.
¡Puedes intentar preguntarle a Donkeybot tú mismo!
Usando el slackbot:
O puede utilizar la CLI:
$ python . s cripts a sk_donkeybot.py
Puede encontrar más ejemplos e información en la sección Cómo utilizar.
Paso 1: PyTorch requiere una instalación de Python 3.x de 64 bits.
Paso 2: Para instalar PyTorch, diríjase a https://pytorch.org/ y siga la guía de inicio rápido según su sistema operativo.
# versions used in development
torch == 1.6 . 0 - - find - links https : // download . pytorch . org / whl / torch_stable . html
torchvision == 0.7 . 0 - - find - links https : // download . pytorch . org / whl / torch_stable . html
Paso 3: clona el repositorio en tu máquina de desarrollo.
$ git clone https://github.com/rucio/donkeybot.git
$ cd donkeybot
Paso 4: Para requisitos adicionales, ejecute.
$ pip install -r requirements.txt
Paso 5: cree y complete el almacenamiento de datos de Donkeybot.
$ python scripts/build_donkeybot -t < GITHUB_API_TOKEN >
Consulte la página de introducción para obtener más detalles sobre cómo contribuir, iniciar el modo de desarrollador y realizar pruebas.
Para errores, preguntas y discusiones, utilice GitHub Issues o comuníquese con el estudiante @mageirakos.
Licenciado bajo la Licencia Apache, Versión 2.0;
http://www.apache.org/licenses/LICENSE-2.0