Skip to content

rwth-acis/Social-Bot-Framework

 
 

Repository files navigation

GitHub GitHub release

A Web-based, model-driven framework for creating social bots for RESTful web applications. Check out the wiki for more information about the modeling language and tutorials on creating bots with the framework.

Core Components

External Dependencies

(Note that the markdown format is only supported until versions < 2.8.21, later releases only accept the yaml format)

SBF Utilities Frontend

This application provides helpers to interact with the Social Bot Manager service.

This frontend consists of the Bot Modeling and the NLU Model Training Helper.

Build the application

There are two possibilities to build the application:

  • Use the Docker image
  • Build using Grunt The Docker image includes all Syncmeta dependencies. If you build the application using Grunt you need to host Syncmeta yourself.

Build using Docker

First, build the Docker image. Please note that the frontend can onyl be built using node versions <=11

$ docker build -t rwthacis/sbf-utils .

The application is using [YJS][yjs-github] for interwidget communication, therefore it needs [y-websocket-server][y-websocket-server] instance. It can be started with the following command:

$ docker run -p 1234:1234  -d rwthacis/y-websockets-server

Then you can start the container like this:

$ docker run -p 8070:8070 -d rwthacis/sbf-utils

Note that depending on your configuration, additional variables might need to be set. The list of possible variables can be found in the following section. After the container started to run, the application will be accessible via http://127.0.0.1:8070 . Make sure not to use localhost as you will run into CORS issues when loading ressources from Syncmeta.

Confguration

The following environment variables can be configured.

Variable Meaning Default Required
OIDC_CLIENT_ID OIDC client id which is used for authentication purposes. The client id can be acquired from Learning Layers after client registration www.localclient.com Yes
YJS The adress of the yjs instance. http://127.0.0.1:1234 Yes
YJS_RESOURCE_PATH If the WebSocket server is running behind a reverse proxy and the /yjs path is redirected to the WebSocket server, this env variable needs to be /yjs/socket.io. No
RASA_NLU Address of a server hosting the NLU Model. If not empty, the given address will be written in the "Rasa NLU Endpoint" field of the NLU Model Training Helper. No
SBF_MANAGER Address of a running SBFManager Instance. If not empty, the given address will be written in the "SBFManager Endpoint" fields of the frontend. No

Build using Grunt

You can also build the application using Grunt. First create config.json file in the Utilities Frontend/app directory. It should have the following content:

{
    "syncMetaHost": "<SYNC_META_HOST>",
    "oidc_client_id": "<OIDC_CLIENT_ID>",
    "yjs_address": "<YJS_ADDRESS>",
    "yjs_resource_path": "<YJS_RESOURCE_PATH>",
    "contact_service_url": "<CONTACT_SERVICE_URL>"
}

Open a terminal in the Utilities Frontend/app folder. Run

npm install

After that run

npm run build  

to build the application. Alternatively, you can use npm run build:watch to automatically rebuild the application on file changes.

Now, run

npm run start

to start the server. The application will be served on localhost:8082.

Bots created using this framework

Bot Description Application Demo
MensaBot Bot used to fetch and rate menu for canteens. las2peer-Mensa-Service Telegram
SurveyBot Conducts surveys in chat, including getting the survey information, sending reminders and passing user results back to the survey instance. Survey-Handler-Service, MobSOS Surveys or LimeSurvey Rocket.Chat
FeedBot Gives out assignments to users, takes in their written solution and utilizes T-MITOCAR to compare it with a master solution. Does not give a grade but returns a feedback file where the comparison is discussed. las2peer-T-MITOCAR-Service Rocket.Chat
ReaderbenchBot Gives out assignments to users, takes in their written solution and utilizes Readerbench to compare it with a master solution. Does not give a grade but returns a feedback file where the comparison is discussed. las2peer-readerbench Rocket.Chat
LitBot Supports students with reading seminar texts. Conducts small exercises with students and proposes additional tips, tools and learning material for before and after reading the texts. Also does recommendations based on the read texts. las2peer-akg Rocket.Chat
LA-Bot Verifies a student's consent and manages it via blockchain. Continuing learner activities are verified and can be queried. learning-analytics-verification Rocket.Chat
CitBot Finds references for text passages or for keywords. Manages marked literature and offers an export. Citation-Recommendation-Bot Slack - Contact us

Deploying a Bot

After creating a bot model on the frontend, you will be able to upload the bot to the SBFManager by using the "Model Uploader" on the "Bot Modeling" page. For this to work, you will need a running instance of the SBFManager and adjust the "SBFManager Endpoint" accordingly.

When creating chatbots you will also need to provide a Rasa server hosting an NLU Model. You can also use the "NLU Model Training Helper" to create your own NLU Model and upload that model by adjusting the "SBFManager Endpoint" and "Rasa NLU Endpoint" accordingly.

To find out how to model bots, you can check the SBF wiki.

References

  1. Neumann, Alexander Tobias, Tamar Arndt, Laura Köbis, Roy Meissner, Anne Martin, Peter de Lange, Norbert Pengel, Ralf Klamma, and Heinz-Werner Wollersheim. 2021. “Chatbots as a Tool to Scale Mentoring Processes: Individually Supporting Self-Study in Higher Education.” Frontiers in Artificial Intelligence 4: 64–71. https://doi.org/10.3389/frai.2021.668220.

  2. Neumann, Alexander Tobias, Peter de Lange, Ralf Klamma, Norbert Pengel, and Tamar Arndt. 2021. “Intelligent Mentoring Bots in Learning Management Systems: Concepts, Realizations and Evaluations.” In Learning Technologies and Systems, edited by Chaoyi Pang, Yunjun Gao, Guanliang Chen, Elvira Popescu, Lu Chen, Tianyong Hao, Bailing Zhang, Silvia Margarita Baldiris Navarro, and Qing Li, 12511:3–14. Lecture Notes in Computer Science. [S.l.]: Springer. https://doi.org/10.1007/978-3-030-66906-5_1.

  3. Neumann, Alexander Tobias, Peter de Lange, and Ralf Klamma. 2019. “Collaborative Creation and Training of Social Bots in Learning Communities.” In 2019 IEEE 5th International Conference on Collaboration and Internet Computing (CIC), 11–19. IEEE. https://doi.org/10.1109/CIC48465.2019.00011.