Skip to content
/ Anees Public

Multi-turn open-domain Arabic chatbot with a wide set of features.

License

Notifications You must be signed in to change notification settings

aashrafh/Anees

Repository files navigation

Anees logo

🤖 Your personal AI friend.


Anees

Anees is an Arabic chatbot that can speak to users on different topics or an open-domain multi-turn conversation rather than a specific domain. Anees is your personal AI friend that you can express and witness yourself through a helpful and empathetic conversation.

📝 Table of Contents

Demo

Demo 1 Demo 2
demo.1.mp4
demo.2.mp4

Architecture

Anees consists of 6 major modules that need to be understood before implementing such a thing. The modules are natural language understanding, emotion classification, intent classification, weather/schedule, recommendation, and natural language generation. Apart from that, there is a connection between each module and the other. Each of these modules is described in detail in the project documentation, how they are all connected to each other, and how they represent the system architecture.

architecture

Datasets

We used different datasets for each module that suit the purpose of the module. Some of the used datasets are ANERcorp, MovieLens 25M, and Arramooz. You can find the datasets used to fine-tune the GPT-2 model in this repository.

Installation

To install and run the project:

  • For the modules, you need to install Docker, Docker Compose, and

    1. Build the image:
    docker-compose build
    1. Run the image:
    docker-compose run
  • For the client, you need to install Node.js, Expo, and then:

    1. Install the dependencies:
    npm install
    1. Run the client:
    npm start
    1. Choose between running the client through an emulator or directly on your phone. Also, you can build an APK version for Android using:
    expo build:android -t apk

    or for iOS:

    expo build:ios -t archive
  • Alos, we provided interactive notebooks for each module that you can use to train, visualize, or have an idea of the implementation details.

Remember to update config.py with your OpenWeatherMap API keys.

⛏️ Built Using

Collaboraters


Ahmed Ashraf


Ahmed Sherif


Ahmed Magdy


Abdelrhman Fdl

Acknowledgment

This is our graduation project for a Bachelor of Science degree in Computer Engineering from Cairo University, in 2022.