/Jobify

We're developing a way for managers and professionals to find what they need.

Primary LanguageJupyter Notebook

Jobify

We're developing a way for managers and professionals to find what they need.

Jobify: a conversational agent for job-related search; Human Machine Dialogue course 2024.

[Video-DEMO], [REPORT]

Authors: Andrea Coppari, Riccardo Tedoldi

Supervisors: Giuliano Tortoreto, S. Mahed Mousavi

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Due to the nature of the project, we employed LLMs so it may require a lot of computational power to run the project.

Prerequisites

What things you need to install the software and how to install them.

Installing

You need to clone the repository and enter in the src folder. Then, to install the necessary packages from requirements.txt into a conda virtual environment.

# Create the virtual environment
conda create -n jobify --file requirements.txt

# Activate the virtual environment
conda activate jobify

or

Run the makefile to install all the necessary packages and vectorize the DBs.

make

To vectorize the DBs manually, there is the following script src\installation\install.py. If you have issues with bitsandbytes, you can checkout the first cell of the notebook notebooks\02_mistralLLM\minstral-llm.ipynb.

Running the tests

To run the rasa train:

rasa train

To run the rasa shell:

rasa shell -m <path_to_model>

To run the rasa server:

rasa run

To run the rasa actions server:

rasa run actions

To run the rasa interactive shell:

rasa interactive

To run the rasa test:

rasa test nlu --cross-validation --fold 10
rasa test core 

Alexa skill configuration

To run the Alexa skill, you need to create a new skill in the Alexa Developer Console and configure the endpoint to the rasa server. We suggest to use ngrok to create a secure tunnel to the rasa server. Here is a guide on how to do it: youtube playlist guide.

Structure of the repository

The repository is structured as follows:

* notebooks
    * 00_userProfilesGeneration
    * 02_semanticSearch
    * 03_mistralLLM
    * data
    * utils
* src
    * actions
        * actions.py
    * data
        * nlu.yml
        * stories.yml
        * rules.yml
    * models
    * installation
        * data
        * install.py
        * vector_db.py
    * tests
        * test_stories.yml
    * results
    * config.yml
    * credentials.yml
    * domain.yml
    * endpoints.yml
    * Makefile
    * README.md
    ...
    * requirements.txt

Built With

  • Rasa - The chatbot framework used
  • Anaconda - The data science platform used
  • Alexa - The voice assistant used
  • LangChain - The language processing platform used
  • ngrok - The secure tunnel used
  • Hugging Face - The transformer models used

Contributing

If you want to contribute to the project, please contact us.

We are glad to accept any kind of contribution.

To Cite

@misc{CoppariTedoldi2023,
    title   = {Jobify: a conversational agent for job-related search},
    author  = {Andrea Coppari, Riccardo Tedoldi},
    year    = {2024},
    url  = {https://github.com/r1cc4r2o/Jobify}
}