{"id":15650001,"url":"https://github.com/aashrafh/anees","last_synced_at":"2025-04-30T16:42:13.764Z","repository":{"id":49796733,"uuid":"466510312","full_name":"aashrafh/Anees","owner":"aashrafh","description":"Multi-turn open-domain Arabic chatbot with a wide set of features.","archived":false,"fork":false,"pushed_at":"2023-08-29T00:20:30.000Z","size":123742,"stargazers_count":37,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T09:24:02.172Z","etag":null,"topics":["anees","arabic-dialects","arabic-nlp","chatbot","chatbots","dialogue-generation","gpt-2","multi-turn-dialogue","natural-language-understanding","nlp"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aashrafh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["aashrafh"]}},"created_at":"2022-03-05T16:41:50.000Z","updated_at":"2024-05-18T22:22:19.000Z","dependencies_parsed_at":"2024-10-03T12:33:03.604Z","dependency_job_id":"1a3d83b3-9e60-494a-9a26-f329611ba0c5","html_url":"https://github.com/aashrafh/Anees","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aashrafh%2FAnees","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aashrafh%2FAnees/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aashrafh%2FAnees/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aashrafh%2FAnees/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aashrafh","download_url":"https://codeload.github.com/aashrafh/Anees/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242679489,"owners_count":20168158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anees","arabic-dialects","arabic-nlp","chatbot","chatbots","dialogue-generation","gpt-2","multi-turn-dialogue","natural-language-understanding","nlp"],"created_at":"2024-10-03T12:32:55.385Z","updated_at":"2025-03-09T10:30:43.987Z","avatar_url":"https://github.com/aashrafh.png","language":"Jupyter Notebook","funding_links":["https://github.com/sponsors/aashrafh"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"\" rel=\"noopener\"\u003e\n \u003cimg width=400px height=210px src=\"https://user-images.githubusercontent.com/40968967/180668398-0b453d43-a08f-4b31-ba22-6dcb71a3cb12.svg\" alt=\"Anees logo\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e :robot: Your personal AI friend.\n    \u003cbr\u003e \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/aashrafh/Anees/graphs/contributors\" alt=\"Contributors\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/aashrafh/Anees\" /\u003e\u003c/a\u003e\n  \n   \u003ca href=\"https://github.com/aashrafh/Anees/issues\" alt=\"Issues\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/issues/aashrafh/Anees\" /\u003e\u003c/a\u003e\n  \n  \u003ca href=\"https://github.com/aashrafh/Anees/network\" alt=\"Forks\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/forks/aashrafh/Anees\" /\u003e\u003c/a\u003e\n        \n  \u003ca href=\"https://github.com/aashrafh/Anees/stargazers\" alt=\"Stars\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/stars/aashrafh/Anees\" /\u003e\u003c/a\u003e\n        \n  \u003ca href=\"https://github.com/aashrafh/Anees/blob/master/LICENSE\" alt=\"License\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/aashrafh/Anees\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n---\n\n# Anees\n**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.\n\n## 📝 Table of Contents\n- [Demo](#demo)\n- [Architecture](#arch)\n- [Datasets](#datasets)\n- [Installation](#install)\n- [Technology](#tech)\n\n## Demo \u003ca name = \"demo\"\u003e\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n\nDemo 1 | Demo 2\n:-: | :-:\n\u003cvideo src='https://user-images.githubusercontent.com/40968967/180667178-64b55cac-6661-43ad-8fd7-c3f8bf614758.mp4'/\u003e | \u003cvideo src='https://user-images.githubusercontent.com/40968967/180666812-15ede875-c0a6-4357-94e1-09885eadee7a.mp4'/\u003e\n\n\u003c/div\u003e\n\n## Architecture \u003ca name = \"arch\"\u003e\u003c/a\u003e\n\nAnees 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](https://github.com/aashrafh/Anees/blob/rest/Anees%20Document.pdf), how they are all connected to each other, and how they represent the system architecture.\n\n\u003cdiv align=\"center\"\u003e\n\n![architecture](https://user-images.githubusercontent.com/40968967/180667782-8d183eb9-ca4d-4ff2-b774-8a6afa15f2b0.png)\n\n\u003c/div\u003e\n\n## Datasets \u003ca name = \"datasets\"\u003e\u003c/a\u003e\n\nWe used different datasets for each module that suit the purpose of the module. Some of the used datasets are [ANERcorp](https://camel.abudhabi.nyu.edu/anercorp/), [MovieLens 25M](https://grouplens.org/datasets/movielens/25m/), and [Arramooz](https://github.com/linuxscout/arramooz). You can find the datasets used to fine-tune the GPT-2 model in [this repository](https://github.com/aashrafh/anees-dataset).\n\n## Installation \u003ca name = \"install\"\u003e\u003c/a\u003e\n\nTo install and run the project:\n\n- For the modules, you need to install [Docker](https://docs.docker.com/engine/install/), [Docker Compose](https://docs.docker.com/compose/install/), and \n    1. Build the image:\n    \n    ```py \n    docker-compose build\n    ```\n    \n    2. Run the image:\n    \n    ```py \n    docker-compose run\n    ```\n- For the client, you need to install [Node.js](https://nodejs.org/en/download/), [Expo](https://docs.expo.dev/get-started/installation/), and then:\n    1. Install the dependencies:\n    ```py\n    npm install\n    ```\n    \n    2. Run the client:\n    ```py\n    npm start\n    ```\n    \n    3. Choose between running the client through an emulator or directly on your phone. Also, you can build an APK version for Android using:\n    ```py\n    expo build:android -t apk\n    ```\n    or for iOS:\n    ```py\n    expo build:ios -t archive\n    ```\n - Alos, we provided interactive notebooks for each module that you can use to train, visualize, or have an idea of the implementation details.\n \n \u003e Remember to update [`config.py`](https://github.com/aashrafh/Anees/blob/main/modules/config.py) with your [OpenWeatherMap](https://openweathermap.org/) API keys.\n \n ## ⛏️ Built Using \u003ca name = \"tech\"\u003e\u003c/a\u003e\n- [Python](https://www.python.org/)\n- [PyTorch](https://pytorch.org/)\n- [scikit-learn](https://scikit-learn.org/stable/)\n- [MongoDB](https://www.mongodb.com/)\n- [Flask](https://flask.palletsprojects.com/en/2.1.x/)\n- [React Native](https://reactnative.dev/)\n- [Expo](https://expo.dev/)\n\n## Collaboraters\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/aashrafh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40968967?v=4\" width=\"150px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAhmed Ashraf\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/td\u003e\n     \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ahmedsherif304\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40776441?v=4\" width=\"150px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAhmed Sherif\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/td\u003e\n     \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/AhmedMGZ7\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/48853566?v=4\" width=\"150px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAhmed Magdy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/td\u003e\n     \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Abdelrhmanfdl\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44409979?v=4\" width=\"150px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbdelrhman Fdl\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/table\n  \u003e\n  \n## Acknowledgment\n\nThis is our graduation project for a Bachelor of Science degree in Computer Engineering from Cairo University, in 2022.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faashrafh%2Fanees","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faashrafh%2Fanees","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faashrafh%2Fanees/lists"}