K0nkere / DL-Dice-detection-project

DnD dice detection with CNN and transfer learning / Project for ML Bookcamp
0 stars 0 forks source link

How to: BotPress chatbot #27

Open K0nkere opened 8 months ago

K0nkere commented 8 months ago

Docker запуск образа

docker run \
--network botpress-network \
-p 3000:3000 -p 3100:3100 \
-v botpress_data:/botpress/data \
-e BP_MODULE_NLU_DUCKLINGURL=http://localhost:8000 \
-e BP_MODULE_NLU_LANGUAGESOURCES='[{ "endpoint": "http://localhost:3100" }]' \
botpress/server \
bash -c "./duckling & ./bp lang --langDir /botpress/data/embeddings & ./bp"

Docker-compose сервисов

version: '3'
networks:
  botpress-network:

services:
  botpress:
    image: botpress/server
    container_name: botpress
    command: bash -c "./duckling & ./bp lang --langDir /botpress/data/embeddings & ./bp"
    expose:
      - 3000
      - 3100
      - 8000
    environment:
      - DATABASE_URL=postgres://postgres:secretpw@postgres:5435/botpress_db
      - REDIS_URL=redis://redis:6379?password=redisPassword
      - BP_MODULE_NLU_DUCKLINGURL=http://botpress:8000
      - BP_MODULE_NLU_LANGUAGESOURCES=[{"endpoint":"http://botpress:3100"}]
      - BP_PRODUCTION=true
      - BPFS_STORAGE=database
    depends_on:
      - postgres
      - redis
    volumes:
      - botpressdata:/botpress/data
    ports:
      - "3000:3000"
      - "3100:3100"
    networks:
      - botpress-network

  postgres:
    image: postgres:11.2-alpine
    expose:
      - 5435
    environment:
      PGPORT: 5435
      POSTGRES_DB: botpress_db
      POSTGRES_PASSWORD: secretpw
      POSTGRES_USER: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - botpress-network
    ports:
      - "5435:5435"

  redis:
    image: redis:5.0.5-alpine
    expose:
      - 6379
    command: redis-server --requirepass redisPassword
    volumes:
      - redisdata:/data
    networks:
      - botpress-network

  ngrok:
    image: ngrok/ngrok:latest
    container_name: botpress_ngrok
    # command: ["ngrok", "http", "botpress:3000"]
    ports:
      - 4040:4040
    environment:
      - NGROK_CONFIG=/etc/ngrok.yml
      - NGROK_AUTHTOKEN=<ngrok_authtoken>
      - NGROK_API_KEY=<ngrok_api_key>
    volumes:
      - ./ngrok.yml:/etc/ngrok.yml
    networks:
      - botpress-network

volumes:
  pgdata:
  redisdata:
  botpressdata:
K0nkere commented 8 months ago

Подключене бота к Teams/Skype

MS Azure Регистрация приложения

  1. Microsoft Azure >> All services >> App registrations >> New registration >>
    • задать название приложения Name
    • выбрать Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
    • нажать Register
  2. В окне обзора созданного приложения сохранить
    • Application (client) ID
  3. В том же окне перейти в раздел Certificates & Secrets
    • New client secret >> задать описание секретов description и выбрать срок действия expires >> Add
    • Скопировать и сохранить значения Value(!!! будет видно только один раз), SecretID

      Регистрация бота

      Регистрация бота

  4. Перейти в раздел регистрации нового бота BotFramework >> задать поля >> Register
    • Bot name
    • Bot handle
    • в поле Paste your app ID below to continue вставить Application (client) ID из пункта 2
    • поле Messaging endpoint будет заполнено в шаге п.10
    • отметить “I agree …“ >> Register
  5. My bots >> Connect to channels добавить Teams/Skype >> Edit (для skype отметить Enable messaging) >> Save

    Подключение

  6. localhost:4040 >> NGROK UI >> Status >> Скопировать URL вида https://77a4-213-171-48-98.ngrok-free.app
  7. В BotPress UI >> выбрать бота >> Code Editor >> выбрать для редактирования файл Global\botpress.config.json в поле externalUrl вставить скопированное значение URL из п.6
  8. В файле bot.config.json добавить ключ messaging
    }, <-- окончание ключа pipeline_status
    "messaging": {
    "channels": {
      "teams": {
        "enabled": true,
        "appId": "<application_(client)_ID_п.2>",
        "appPassword": "<value_п.3>"
      }
    }
    }
  9. Перезапустить сервер BotPress с помощью красной шестеренки справа-внизу окна
  10. В интерфейсе BotFramework >> My bots >> Settings заполнить поле Messaging endpoint <externalUrl>/api/v1/messaging/webhooks/<botpress_bot_name>/teams получится эндпойнт вида https://77a4-213-171-48-98.ngrok-free.app/api/v1/messaging/webhooks/unified-management-estimation/teams
  11. Проверить работу бота с помощью кнопки Test в правом верхнем углу BotFramework
K0nkere commented 8 months ago

Подключение бота к Telegram

  1. Создать бота в Telegram с помощью поиск > BotFather > /newbot > задать name и username > скопировать токен вида 1112223344:AAaaaaaaaaaa-BBBBBB-QXAxR_SheWjZX8A
  2. Из интерфейса BotPress UI выбрать нужного бота >> перейти в Code Editor
  3. Добавить в файл bot.config.json блок messaging
  4. Поместить в значение ключа botToken токен Telegram