Skip to content

iai-group/dagfinn

Repository files navigation

Code style: black

DAGFiNN

DAGFiNN is a conversational conference assistant that can be made available for a given conference both as a chatbot on the website and as a Furhat robot physically exhibited at the conference venue. Conference participants can interact with the assistant to get advice on various questions, ranging from where to eat in the city or how to get to the airport to which sessions we recommend them to attend based on the information we have about them. The overall objective is to provide a personalized and engaging experience and allow users to ask a broad range of questions that naturally arise before and during the conference.

Features

  • Provide recommendations across multiple domains, have basic conversational capabilities, and personalization integrated into a single system.

    • Currently, recommenders are built for point-of-interest (POI) and conference content
  • Support multiple user interfaces (UI)

    • A Web chat and a Furhat robot with an optional external screen
    • Use of rich responses customized to each user interface to effectively convey information.
  • Utilize multiple input modalities

    • Furhat is a social robot with a microphone, speaker, and camera, which makes it possible to recognize users that interacted with the robot previously.

Disclaimer

DAGFiNN is not (yet) a mature production-level system, but rather a research prototype. We welcome contributions on all levels (pull requests, suggestions for improvements, feature requests, etc.).

Installation

The easiest way to install DAGFiNN and all of its dependencies is by using pip (the recommended python version is 3.8):

python -m pip install --upgrade pip
pip install -r requirements.txt

python -m spacy download en_core_web_md

NB! There is a known issue with websockets and Rasa 3.0. If you get a server error on launching the webchat in the browser you might need to downgrade the sanic libraires. To do so, use the commands:

pip install sanic==21.6.0
pip install Sanic-Cors==1.0.0
pip install sanic-routing==0.7.0

Running

DAGFiNN can be run in several ways. It can run on the Furhat robot, as a webchat, or as a command line application. Before starting and after every code change, the bot needs to be retrained. Use the command:

rasa train

To run DAGFiNN you will need to start two services. The first one is the actions server. You can start it by typing:

rasa run actions

The second is the Rasa server with all defined channels:

rasa run

NB! In some cases, you might see Cross-Origin Resource Sharing (CORS) error after launching the webchat. In that case restart the server with the command:

rasa run --cors "*"

Command line application

You can start the command line version of the chatbot with the command:

rasa shell

If you want to debug the NLU component, i.e., explore recognized entities or classified intents, you can run:

rasa shell nlu

Webchat

You can start a chat webserver as follows. If you do not use the default port to run the Rasa server, you need to change the port in this file.

cd ui/furhat-screen/
python -m http.server

By default the server runs on port 8000. To change it start the server with the command:

python -m http.server PORT

Furhat

The Furhat skill that facilitates the communication between the Rasa server and the Furhat robot is located ui/furhat-skills. The skill should be configured by changing the IP to the Rasa server, compiled, and started. To compile the skill run:

cd ui/furhat-skills/rasa
./gradlew shadowJar

To start the skill run:

java -jar build/libs/rasa-all.skill

The skill must be compiled if the server IP changes or any Furhat skill modifications are made.

Citation

If you are using this repository, please cite the following paper:

@inproceedings{10.1145/3523227.3551467,
   author = {Kostric, Ivica and Balog, Krisztian and Aresvik, T\o{}ll\o{}v Alexander and Bernard, Nolwenn and D\o{}rheim, Eyvinn Thu and Hantula, Pholit and Havn-S\o{}rensen, Sander and Henriksen, Rune and Hosseini, Hengameh and Khlybova, Ekaterina and Lajewska, Weronika and Mosand, Sindre Ekrheim and Orujova, Narmin},
   title = {DAGFiNN: A Conversational Conference Assistant},
   year = {2022},
   publisher = {Association for Computing Machinery},
   booktitle = {Proceedings of the 16th ACM Conference on Recommender Systems},
   pages = {628–631},
   series = {RecSys '22}
}

Contact

If you have any questions, please contact Ivica Kostric at ivica.kostric@uis.no or Krisztian Balog at krisztian.balog@uis.no.

About

Conversational Conference Assistant

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •