Git Product home page Git Product logo

game_verbs's Introduction

Бот-помощник онлайн-издательства "Игра слов"

Бот-помощник онлайн-издательства "Игра слов" для VK и Telegram, который отвечает на типичные вопросы пользователей. Бот обучаем нейросетью. Бот работает на сервисе Heroku.

Требования

Python 3.8, 3.9 или 3.10.

Зависимые модули

  • google-cloud-dialogflow==2.14.0
  • python-dotenv==0.20.0
  • python-telegram-bot==13.12
  • requests==2.27.1
  • vk-api==11.9.8

Предварительные требования

  1. Для телеграм бота необходимо создать бота в Телеграм и получить токен. Разрешить боту отправлять вам уведомления.
  2. Для бота в VK необходимо создать сообщество в VK. В настройках сообщества включить сообщения и создать ключ API. Пользователям нужно разрешить сообществу отправлять им сообщения.
  3. На Google Cloud Platform создать проект, создать ключ API и скачать его в виде файла, создать агента в DialoFlow и обучить его. Для обучения агента можно запустить скрипт manage_intents.py, которые обучит его фразами и ответами из файла questions.json.

Установка

  • Склонировать проект
https://github.com/rs0x069/game_verbs.git
  • Перейти в папку game_verbs
  • Установить пакеты
pip install -r requirements.txt
  • Создать файл .env со следующими переменными окружения:
    • TELEGRAM_TOKEN - токен телеграм бота.
    • TELEGRAM_RECIPIENT_CHAT_ID - id чата в Телеграм, в который бот будет отправлять ошибки.
    • VK_TOKEN - ключ API из VK.
    • GOOGLE_APPLICATION_CREDENTIALS - имя файла с регистрационными данными из Google Cloud Platform. Этот файл должен лежать в папке проекта.
    • GOOGLE_DIALOGFLOW_PROJECT_ID - код проекта в Google Cloud Platform

Использование

  • Для запуска телеграм бота запустить скрипт bot_tg.py
python bot_tg.py
  • Для запуска бота VK запустить скрипт bot_vk.py
python bot_vk.py
  • Для обучения агента в DialogFlow фразами и ответами из файла questions.json запустить скрипт manage_intents.py
python manage_intents.py

Можно указать путь вручную, для этого нужно воспользоваться аргументом -f или --file_name:

python manage_intents.py -f /path/filename.json

Пример файла:

{
  "Устройство на работу": {
    "questions": [
      "Как устроиться к вам на работу?",
      "Как устроиться к вам?",
      "Хочу работать редактором у вас",
    ],
    "answer": "Если вы хотите устроиться к нам, напишите на почту [email protected] ..."
  },
  ...
}

Запуск в Докер

  • На компьютере должен быть установлен docker
  • Подготовить файл с переменными окружения .env (описание переменных см. в разделе Установка)
  • Положить файл с регистрационными данными из Google Cloud Platform в папку с проектом или прокинуть этот файл как volume в докер-контейнер в директорию /app/. Указать имя этого файла в файле .env в переменной GOOGLE_APPLICATION_CREDENTIALS.
  • Находясь в папке с проектом выполнить команду (запустятся боты telegram и vk):
docker compose up -d
  • Если в command указать telegram, то запустится бот telegram, если указать vk, то запустится бот vk (см. пример файла docker-compose.yml)

Пример файла docker-compose.yml

version: '3.9'

services:
  bot_telegram:
    build: .
    command: telegram
    env_file:
      - ./.env

  bot_vk:
    build: .
    command: vk
    env_file:
      - ./.env

Примеры

Пример результата для Telegram:

Пример результата для Telegram

Пример результата для ВКонтакте:

Пример результата для ВКонтакте


Учебный проект для курсов web-разработчиков dvmn.

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.