Giter Club home page Giter Club logo

tamtam-one-coffee-bot's People

Contributors

artem24630 avatar coradaedvk avatar coradead avatar kov-pavel avatar sanerins avatar

Stargazers

 avatar

Watchers

 avatar  avatar

tamtam-one-coffee-bot's Issues

Доп инфа на /approve

Отправлять пользователям более подробную информацию о друг друге после двустороннего аппрува

Добавить профиль юзера

В таске #5 я написал, что когда оба юзера нажмут /approve мы можем поделиться их личными данными.
Неплохо было бы добавить профиль, в профиле можно было бы добавить описание, которое показывается анонимам и полноценное описание, которое показывается после анонимного чата, когда оба юзера нажали /approve и там есть уже более личная информация и ссылки на страничку и так далее

Перевести хранилище данных на SQL

В данный момент все данные userStateMap, userWaitList, userConnections - все это надо перевести на какую-то embedded SQL базу данных

//TODO: userStateMap, userWaitList, userConnections надо будет сделать при помощи SQL бд. Сейчас мы теряем все стейты, диалоги и очередь при перезагрузке
//TODO: userWaitList должен учитывать из какого города юзер
//TODO: userConnections сейчас - полный кринж, ибо храним две инвентированные пары ключ-значение, чтобы собеседники общались
//TODO: сделал так, ибо сделаем нормально в SQL бд, будет табличка connection с двумя лонгами и id.

Восстановление личных данных пользователя

Сейчас в коде есть места (помеченные "TODO NULL_USER"), где нам приходит null'овый юзер и мы не знаем, что с ним делать. Есть идея завести с пользователем диалог и попросить его предоставить данные повторно, если такая возможность вообще есть (= есть айди юзера).

Валидация городов

Сейчас у юзера может стоять любой город. Необходимо создать пул городов (Москва и СПб) и по ним смотреть, верно работяга ввел свой город или нет. Дополнительно поменять поле User::UserBuilder::DEFAULT_CITY на "Москва".

Матчинг юзеров

В самой простой реализации - создание функции matchProba(text1, text2), которая возвращает некоторое "расстояние", "похожесть" одного текста на другой.

В продвинутой - "данные об увлечениях юзеров и успешности/неуспешности их соединений можно будет использовать как входные данные для обучения нейронной сети, которая будет решать какому пользователю какой собеседник подходит лучше всего базируясь на его интересах".

Сохранять историю UserConnections, их результат, и использовать их во благо улучшения качества подбора

Можно сохранять UserConnections после их завершения, добавим к ним статусы по типу IN_PROGRESS/SUCCESSFUL/UNSUCCESSFUL и в дальнейшем использовать их для разных сладостей
Первоначально как минимум можно сделать так, чтобы юзера больше не коннектило с юзером, с которым он уже анонимно общался
В дальнейших этапах развития бота данные об увлечениях юзеров и успешности/неуспешности их соединений можно будет использовать как входные данные для обучения нейронной сети, которая будет решать какому пользователю какой собеседник подходит лучше всего базируясь на его интересах

Предложения для продолжения диалога

Проксировать на ChatGPT запросы о том, как лучше начать/продолжить диалог с пользователем исходя из текущего контекста (чат гпт не должна знать подробное описание оппонента! но зато можно раскрывать ей свое)

Сделать timeout ожидания анонимного диалога, в котором никто никому ничего не пишет

В данный момент анонимный диалог одного юзера с другим может висеть невероятно долго. Для того, чтобы решить эту проблему можно сделать поток демон, который будет в бесконечном цикле раз в n минут проходить по всем активным на данный момент connections и разрывать их, если юзеры ничего не писали друг другу условно 1 день

Сделать механизм выхода из очереди

В данный момент из очереди на беседу выйти нельзя, можно сделать механизм выхода из оной при помощи команды /stop или чего-то подобного, скорее всего надо реализовывать уже после перехода на SQL хранилище

Добавить механизм подтверждения встречи в боте

Оригинальный random-coffee bot сразу же назначает человеку встречу и дает его контакты.
В нашем случае - такое невозможно, так как все one-coffee боты являются закрытыми сообществами, при входе в которые о"валидности" человека не возникает никаких вопросов: оригинальный random-coffee бот стоит порядочные 750 рублей в месяц, а random-coffee_hse проверяет, что человек, подавший заявку действительно является студентов ВШЭ.
Наш бот доступен всем пользователям и такой возможности у нас нет, поэтому сразу давать информацию друг о друге мы не можем - бот наполнять боты-майнеры инфы, толстые тролли и неприятные собеседники, которым не каждый пользователь захочет раскрывать свою страничку, поэтому предлагаю такую систему:
В список команд анонимного чата, который в данный момент присутствует в боте, добавляем команду /approve, в том случае, если оба пользователя, которые чатятся, напишут /approve - будем считать, что они понравились друг другу как анонимные собеседники, а потому мы можем прислать ссылку на их личные странички, чтобы они уже могли договориться о личной встрече

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.