Code Monkey home page Code Monkey logo

knowledge-api's People

Contributors

redboo avatar shyzik93 avatar syeysk avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

shyzik93 redboo

knowledge-api's Issues

Система ранжирования

Проблема: поиска релевантной информации по БЗ.
Предлагаю изучить алгоритмы ранжирования.
Решение: в выдаче генерировать ссылку на сервер API, который будет сохранять и переадресовывать на саму заметку:

  • количество просмотров данной заметки
  • количество переходов по данному запросу
  • источник перехода
  • персонализация (статистика пользователя)

Перейти на новый менеджер пакетов Poetry

Проблема:
Пакетный менеджер PIP не удалит из системы те библиотеки, которые были удалены из файла requirements. Как минимум это приводит к засорению системы, как максимум - к конфликту, если у заменяемой библиотеки будет одинаковое название (например, форк).

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

Хотелось бы иметь возможность экстренно обновлять базу и редеплоить сервер вручную. А также просматривать, когда было последнее обновление (это даст понимание, отработал ли хук), последние поисковые запросы (даст понимание, пользуется ли кто базой).

Исправить ошибку не отображения автора холста в списке участников

Проблема: автор холста автоматически добавляется в список участников на стороне сервера, при этом на фронтальной стороне автор в списке участников не виден до обновления страницы.

Нужно поправить фронтальную часть.

Ошибка замечена Арсением.

Панель управления

Проблема: на данный момент управление скриптом только через консоль.
Решение: создать панель управления.

Я как администратор:

  • могу залогиниться в кабинет через логин пароль, либо googleAccount
  • есть возможность обновить базу знаний в Firestore

Безопасное обновление базы

Проблема

Сейчас перед обновлением базы происходит удаление всех заметок, что может привести к опустошению базы, если обновление не сработает.

Решение

Первый способ:
Необходимо как-то сначала добавлять новые заметки, затем удалить старые. Либо в транзакции удаляем все заметки перед добавленим первой порции новых.

Изменения вносить в класс UploaderDjangoServer

Проблема не критична, так как обновление происходит при коммитах автоматически и обновлять базу вручную необходимости нет.

Добавить логирование

Сейчас не ясно, насколько активно используют поиск по заметкам в Телеграм и Дискорде. По активности поиска можно оценивать актальность функционала.

Задача пока большой актуальности не имеет. А в будущем, при разделении репозитория на микросервисы можно будет задействовать сторонее приложение "Gravitee.io": https://habr.com/ru/company/X5Tech/blog/543324/ , предназначенное для логирования создания единой точки входа в API разных микросервисов и логирования/анализа запросов к ним.

Улучшение Холста фасилитации

Романом были предложены следующие правки для устранения неоднозначсти/неясности полей:

Блок "1. Цель"

  1. Добавить поле "Первоначальные решение"

Блок "2. Участники"

  1. Переименовать в "Обязательные участники"
  2. либо добавить столбец "Обязательно ли присутствие участника"

Блок "3. Повестка"

  1. Добавить поле "Принципиальные возражения"
  2. Добавить поле "Предлагаемые решения"
  3. Добавить поле "Встречные предложения"
  4. Поле "Мнение/вопросы" переименовать в "Вопросы", так как слово "Мнение" - высокоабстрактное
  5. Поле "Темы" переименовать в "Тема выступления участника"

Источник: https://discord.com/channels/651126451998818320/1060293974893543545/1076921561921093654

P.S. Мне смотрится полезным в блоке "Повестка" разделить поле "мнение" на принципиальные возражения, встречные предложения и предлагаемые решения, так как разделение сделает более очевидным, что нужно указывать в данном поле.

Алгоритм поиска

Проблема: при поиске выдача в никому не нужном алфавитном порядке.
image

Решение: изучение алгоритмов поиска и выдачи результатов.

Информация к размышлению

Концепты:

  • TF-IDF
  • Латентно-семантический анализ
  • Ссылочная масса
  • количество просмотров данной заметки
  • конверсия (CTR)
  • количество переходов по данному запросу
  • персонализация (статистика пользователя) «пузырь фильтров» (показатель возвратов)
  • близость к началу предложения и документа
  • виды вхождения запроса. Они могут быть прямыми, разбавленными и словоформами (fuzzywuzzy)
  • наличие ключевых слов в Title и H1, ссылочных анкорах, метатегах и прочих элементах контента

Готовые скрипты

Активность кнопки "Задеплоить"

Потенциальная проблема:
Сейчас любой человек может нажимать кнопку деплоя сколь угодно раз подряд, что может привести к неопределённым последствиям.

Решение:
Кнопка активна, если на гитхабе существуют свежие коммиты (и их нет в ветке на сервере). Рядом указывать количество свежих коммитов.

В противном случае кнопка неактивна, выводится надпись о

API холста фасилитации

Проблема: имеющееся API является черновым и, можно сказать, его нет. Это препятствует разработке приложения activista.

API должно позволять:

  • добавлять новые холсты
  • редактировать существующие
  • получать холсты (в виде JSON и в виде заметки)

Исправить ошибки в hook гихаба

  • Если заметка была переименована, произойдёт попытка её получить из базы, что приведёт к паднению
  • Сохранять тело запроса от гитхаба в базу, чтобы при падении было возможно принудительно вызвать хук. После успешного завершения удалять хук из базы. Сейчас же при падении сервера мы вынуждены сносить базу и делать заново полный импорт django-командой.

API добавления заметки

Сейчас есть API для поиска и получения заметок, но нет для добавления. Это препятствует реализации приложения Activista.

Статические файлы вне репозитория

Проблема: сейчас все статические файлы расположены вне репозитория, следовательно при локальном запуске будут отсутствовать *.css и *.js

Решение: перенести директорию со статическими файлами в репозиторий, поправить в settings.py путь к статике.

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.