GithubHelp home page GithubHelp logo

recsysapi's Introduction

RecSysApi - Рекомендательная система, с доступом по Api

Стек:

  • Django + Django REST framework
  • PostgresSQL - база данных
  • SwaggerUI - OpenApi документирование
  • Numpy, Scipy, Pandas, sklearn - библиотеки для машинного обучения

Как запустить:

  1. В терминале git clone https://github.com/NeOleksiy/friends_service.git
  2. В терминале docker-compose up --build
  3. В терминале docker-compose run web python manage.py makemigrations
  4. В терминале docker-compose run web python manage.py migrate
  • Если нужно загрузить тестовые данные, на которых делался и тестировался проект, то
  • python -m auxiliary_func.fill_anime.py
  • python -m auxiliary_func.fill_ratings.py(Загружается в бд примерно 3-5 часов)

Как работает:

Для доступа к документации OpenApi переходим по http://127.0.0.1:8000/swagger-ui/

OpenApi документация

Рекомендательная система состоит из 4х модулей:

rec

Основной модуль, где делаются рекомендации, их тут 4 вида:

  • popularity - Рекомендация самых популярных аниме
  • collaborate_filltering - item to item рекомендации, требуют наличия определённого кол-ва оценок для хорошей работы.
  • ContentBased - рекомендации на основе контента(жанров), требуют хотя бы одного оценённого аниме
  • FWLS - гибридные рекомендации, которые обучаются линейной регрессией с весовыми функциями, которые в зависимости от кол-ва оценок возвращают 0 или 1, основной тип персонализированных рекомендаций для пользователя

Пример:

Для доступа к рекомендациям нужно предварительно авторизоваться и поставить нужное кол-во оценок

ContentBased рекомендации,переходим по http://127.0.0.1:8000/rec/content_based

Рекомендации

user

Модуль реализует логику регистрации, авторизации и взаимодействия с списком просмотренных аниме

Пример:

Регистрация пользователя переходим по http://127.0.0.1:8000/user/register

Регистрация

collect

Сборщик данных, собирающий логи дейсвия пользователя

Действия

Сборщик

product

Модуль для взаимодействия с контентом

recsysapi's People

Contributors

neoleksiy avatar

Watchers

 avatar

recsysapi's Issues

Создать таблицы для тестовых данных

#Создать 2 таблицы для тестовых данных по которым будет строиться рекомендации:
(предварительно выполнить миграции python manage.py migrate )

  • В productApi создать таблицу аниме со столбцами из тестовых данных (https://www.kaggle.com/datasets/CooperUnion/anime-recommendations-database/data?select=anime.csv) . Там же надо будет создать таблицу с жанрами со связью Many to Many.
  • Вторую таблицу создать в приложении users с рейтингами со связью Many to Many (таблицы с пользователем и аниме) по тем же тестовым данным

После создания этих таблицы создать миграции python manage.py makemigrations и выполнить их.
Также занести эти данные в таблицу и протестить их вывод(Можно ли так сказать прочитать данные в таблице)

Аутентификация пользователя

В приложении users обновить модель пользователя и добавить аутентификацию юзера (https://www.django-rest-framework.org/api-guide/authentication/) . Так как работаем локально также нужно будет создать базу данных как в .env файле.
Также заранее нужно будет сделать первую миграцию python manage.py migrate . И разумеется создать новую python manage.py makemigrations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.