Skip to main content

Simple Recommendation System, content based.

Project description

FRA

Fra is a Recommendation based framework. It was created with the idea of have an option for creating content-based recommendations easily via API.

Architecture

Architecture diagram

Requirements

  • pyenv (optional but recommended)
  • poetry
  • python 3.9+
  • postgres
  • redis
  • docker (optional)

Installation

  • create a virtualenv

    pyenv virtualenv 3.9.15 fra pyenv activate fra

  • create a database and update the config.py file with the name and host

    psql; create database fra; \q

  • install the requirements

    poetry install

  • migrate the models

    flask --app server/app db upgrade

Running the app

  • activate the environment

    pyenv activate fra

  • run the app

    flask --app server/app run

-- For async jobs that process recommendations

> celery -A motor.tasks worker  --loglevel=info  

Running the app with docker

  • Run the docker-compose

    docker-compose up

That command will start all the services and the web server can be accessed via browser on http://localhost:5000

OpenAPI docs will be online on YOURDOMAIN/api/swagger/ui

Follow this order to be able to get recommendations:

  1. create an organization
  2. add users to the organization
  3. add the files with the data (some examples on example_data folder)
  4. add file mapping
  5. add user ratings
  6. get recommendations

TODO

  • Build and publish on GCP
  • Add more data set to the examples

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fra-2.4.0.tar.gz (90.6 kB view hashes)

Uploaded Source

Built Distribution

fra-2.4.0-py3-none-any.whl (22.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page