{"id":22916876,"url":"https://github.com/polinanime/product_bot","last_synced_at":"2025-04-01T12:44:48.229Z","repository":{"id":230665798,"uuid":"435984138","full_name":"Polinanime/Product_Bot","owner":"Polinanime","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-18T15:41:55.000Z","size":27828,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T07:41:41.877Z","etag":null,"topics":["bot","chatbot","natural-language-processing","nlp"],"latest_commit_sha":null,"homepage":"http://t.me/nlp_sirius_bot","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Polinanime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-12-07T18:19:59.000Z","updated_at":"2022-03-01T09:38:49.000Z","dependencies_parsed_at":"2024-03-31T07:19:31.417Z","dependency_job_id":null,"html_url":"https://github.com/Polinanime/Product_Bot","commit_stats":null,"previous_names":["migelit0/product_bot"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polinanime%2FProduct_Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polinanime%2FProduct_Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polinanime%2FProduct_Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Polinanime%2FProduct_Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Polinanime","download_url":"https://codeload.github.com/Polinanime/Product_Bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246642198,"owners_count":20810559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","chatbot","natural-language-processing","nlp"],"created_at":"2024-12-14T06:14:54.705Z","updated_at":"2025-04-01T12:44:48.210Z","avatar_url":"https://github.com/Polinanime.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ПРОДУКТОВЫЙ NLP БОТ\r\n\r\nКТО ЭТО И С ЧЕМ ЕДЯТ\r\n------------------\r\n[Григорий](http://t.me/nlp_sirius_bot) - бот в Телеграме для удобного заказа продуктов и общения на естественном\r\nязыке.  \r\nБот имеет собственную базу рекомендаций продуктов на основе заказов пользователя, сделанных через него, поэтому бот\r\nинтегрируется в любой маагазин (главное - наличие необходимого API). Система рекомендаций самая примитивная — продается\r\nтовар, который пользователь покупает чаще всего в каждой категории.\r\n\r\nСначала бот ищет запрос в заранее написанной таблице вопрос-ответ, затем если он есть, то совершает соответствующие\r\nдействия и отвечает, иначе подключает GPT-2 для генерации ответа.\r\n\r\nПОДРОБНЕЕ ПРО NLP\r\n-----------------\r\nВ первую очередь при получении запроса он прогоняется через **neuralintents** с таблицей сущностей, написанной заранее.\r\nЕсли там есть необходимый запрос (например, как дела?, расскажи анекдот и т.д.), то пользователю идет соответствующий\r\nответ. При чем если запрос касается действий с магазином (заказать продукты, показать корзину и т.д.), то выполняются\r\nнужные действия и лишь затем идет ответ пользователю, что очевидно.  \r\nОднако если модуль не нашел в таблице запрос, то подключается модель GPT-2, обученная на моих личным переписках, и\r\nгенерирует ответ. Стоит также отметить недочеты в этой части:\r\n\r\n- модель обученая на моих личных переписках, поэтому\r\n    * может выдать мои данные\r\n    * может отправить ссылку или какой-то кусок кода, который я кому-либо отправлял\r\n- слишком мало данных для обучения (всего 97 тыщ строк)\r\n\r\nПОДРОБНЕЕ ПРО ЗАКАЗ ПРОДУКТОВ\r\n-----------------------------\r\nВ проекте реализован сервер-затычка, написанный на Go. В нем есть минимальный API (показать данные продукта, добавить в\r\nкорзину и т.д.). Общение с сервером идет через защищенное базовой аутентификацией http соединение.  \r\nРазвернуты два PostgreSQL (для магазина и для бота). Для магазина там таблицы пользователей и продуктов, для бота -\r\nпользователей и рекомендаций.\r\n\r\nКОММЕНТАРИИ\r\n-----------\r\n\r\n- все держится на моем домашнем сервере (и бот, и магазин, и постгрес), поэтому если что-то сломалось и не отвечает, то\r\n  самое просто решение — написать мне, чтобы я подрубил, если что выключил~~ось~~\r\n- проект создан для конкурса \"Уроки Настоящего\" за ~1 месяц\r\n- впервые работал с\r\n    * постгрес\r\n    * нейронки вообще\r\n    * вместо GPT и neuralintents изначально планировалось использовать косинусное сравнение (?) и индексированию по\r\n      словам — отвечал примерно связно, но мало на что находился ответ, поэтому идея была заморожена\r\n      ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolinanime%2Fproduct_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolinanime%2Fproduct_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolinanime%2Fproduct_bot/lists"}