{"id":13340621,"url":"https://github.com/maxkarelov/masterclass-chatbots","last_synced_at":"2025-03-11T18:31:31.795Z","repository":{"id":82918958,"uuid":"129948335","full_name":"maxkarelov/masterclass-chatbots","owner":"maxkarelov","description":"Мастер класс по чат ботам","archived":false,"fork":false,"pushed_at":"2018-04-22T21:52:49.000Z","size":2443,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-24T06:28:34.036Z","etag":null,"topics":["bot","gcf","js","vk"],"latest_commit_sha":null,"homepage":"https://docs.google.com/presentation/d/1aN87tZA0tOKu7tNcAqhaWFQIdvGY_s2Fvz_lUDNGWu0","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxkarelov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2018-04-17T18:28:57.000Z","updated_at":"2019-12-04T17:45:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4662495-a8ee-4c95-bd55-9296aeb0029b","html_url":"https://github.com/maxkarelov/masterclass-chatbots","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxkarelov%2Fmasterclass-chatbots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxkarelov%2Fmasterclass-chatbots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxkarelov%2Fmasterclass-chatbots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxkarelov%2Fmasterclass-chatbots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxkarelov","download_url":"https://codeload.github.com/maxkarelov/masterclass-chatbots/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243090378,"owners_count":20234792,"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","gcf","js","vk"],"created_at":"2024-07-29T19:23:37.688Z","updated_at":"2025-03-11T18:31:31.788Z","avatar_url":"https://github.com/maxkarelov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ссылки\n======\n* Google Cloud Functions проект [https://console.cloud.google.com/functions/list?project=masterclass-chatbots](https://console.cloud.google.com/functions/list?project=masterclass-chatbots)\n* Dialog Flow Console [https://console.dialogflow.com/api-client](https://console.dialogflow.com/api-client)\n* Презентация [https://docs.google.com/presentation/d/1aN87tZA0tOKu7tNcAqhaWFQIdvGY_s2Fvz_lUDNGWu0](https://docs.google.com/presentation/d/1aN87tZA0tOKu7tNcAqhaWFQIdvGY_s2Fvz_lUDNGWu0)\n* Hangouts [https://hangouts.google.com/call/Y5nlCvXNt2fMI54f8mh5AAEI](https://hangouts.google.com/call/Y5nlCvXNt2fMI54f8mh5AAEI)\n\nСодержание\n=================\n- [1 Создание группы](#1-Создание-группы)\n\t- [1.1 Нажать создать группу](#11-Нажать-создать-группу)\n\t- [1.2 Выбрать тип группы](#12-Выбрать-тип-группы)\n\t- [1.3 Добавить название](#13-Добавить-название)\n- [2 Настройка группы](#2-Настройка-группы)\n\t- [2.1 Перейти в \"Управление сообществом\"](#21-Перейти-в-\"Управление-сообществом\")\n\t- [2.2 Перейти в \"Работа с API\"](#22-Перейти-в-Работа-с-API)\n\t- [2.3 Создать \"Ключ доступа\"](#23-Создать-Ключ-доступа)\n\t- [2.4 Скопировать на будущее](#24-Скопировать-на-будущее)\n\t- [2.5 Перейти во вкладку \"Callback API\"](#25-Перейти-во-вкладку-Callback-API)\n\t- [2.6 Выбрать \"Тип событий\" - \"Входящие сообщения\"](#26-Выбрать-Тип-событий---Входящие-сообщения)\n\t- [2.7 Выбрать любой \"Секретный ключ\". Например \"12345\"](#27-Выбрать-любой-Секретный-ключ-Например-12345)\n\t- [2.8 Вставить адрес HTTP Webhook бота из шага 3.3](#28-Вставить-адрес-HTTP-Webhook-бота-из-шага-33)\n\t- [2.9 Включить \"Сообщения\" в группе](#29-Включить-Сообщения-в-группе)\n- [3 Создание функции обработчика](#3-Создание-функции-обработчика)\n\t- [3.1 Нажать создать функцию](#31-Нажать-создать-функцию)\n\t- [3.2 Выбрать название](#32-Выбрать-название)\n\t- [3.3 Добавить содержимое файлов bot/botHandler.js и bot/package.json. Скопировать адрес HTTP функции](#33-Добавить-содержимое-файлов-botbotHandlerjs-и-botpackagejson-Скопировать-адрес-HTTP-функции)\n- [4 Создание агента](#4-Создание-агента)\n\t- [4.1 Нажать создать агента](#41-Нажать-создать-агента)\n\t- [4.2 Выбрать название](#42-Выбрать-название)\n\t- [4.3 Выбрать язык](#43-Выбрать-язык)\n\t- [4.4 Нажать \"создать\"](#44-Нажать-создать)\n- [5 Настройка доступа](#5-Настройка-доступа)\n\t- [5.1 Открыть гугл клауд проект агента (кликнув по его названию в dialogflow) и открыть IAM](#51-Открыть-гугл-клауд-проект-агента-кликнув-по-его-названию-в-dialogflow-и-открыть-IAM)\n\t- [5.2 Добавить наш сервис аккаунт masterclass-chatbots@appspot.gserviceaccount.com с ролью Dialogflow API Client в проект](#52-Добавить-наш-сервис-аккаунт-masterclass-chatbots@appspotgserviceaccountcom-с-ролью-Dialogflow-API-Client-в-проект)\n- [6 Создание сущности](#6-Создание-сущности)\n\t- [6.1 Нажать создать сущность](#61-Нажать-создать-сущность)\n\t- [6.2 Указать название сущности](#62-Указать-название-сущности)\n\t- [6.3 Переключится в сырой режим](#63-Переключится-в-сырой-режим)\n\t- [6.4 Добавить CSV с возможными жанрами из datasets/genres.csv](#64-Добавить-CSV-с-возможными-жанрами-из-datasetsgenrescsv)\n\t- [6.5 Сохранить сущность](#65-Сохранить-сущность)\n- [7 Создание интента](#7-Создание-интента)\n\t- [7.1 Нажать создать интент](#71-Нажать-создать-интент)\n\t- [7.2 Выбрать название](#72-Выбрать-название)\n\t- [7.3 Добавить параметры](#73-Добавить-параметры)\n\t- [7.4 Указать название action и добавить опциональный параметр - жанр](#74-Указать-название-action-и-добавить-опциональный-параметр---жанр)\n\t- [7.5 Добавить обязательный параметр - дата, используя системную сущность \\@sys.date](#75-Добавить-обязательный-параметр---дата,-используя-системную-сущность-sysdate)\n\t- [7.6 Придумать и добавить размеченные фразы для обучения модели](#76-Придумать-и-добавить-размеченные-фразы-для-обучения-модели)\n\t- [7.7 Включить fulfillment](#77-Включить-fulfillment)\n\t- [7.8 Включить веб хук](#78-Включить-веб-хук)\n\t- [7.9 Сохранить интент](#79-Сохранить-интент)\n- [8 Настройка веб хука](#8-Настройка-веб-хука)\n\t- [8.1 Создать новую функцию вебхук по аналогии функцией обработчиком](#81-Создать-новую-функцию-вебхук-по-аналогии-функцией-обработчиком)\n\t- [8.2 Скопировать содержимое webhook/webhook.js и webhook/package.json в редактор и подеплоить cloud function](#82-Скопировать-содержимое-webhookwebhookjs-и-webhookpackagejson-в-редактор-и-подеплоить-cloud-function)\n\t- [8.3 Открыть настройки fulfillment и включить webhook. Проставить в нем URL созданной функции-вебхука](#83-Открыть-настройки-fulfillment-и-включить-webhook-Проставить-в-нем-URL-созданной-функции-вебхука)\n\t- [8.4 Включить web demo интеграцию](#84-Включить-web-demo-интеграцию)\n\t- [8.5 Протестировать бота](#85-Протестировать-бота)\n- [9 Интеграция vk и dialogflow](#9-Интеграция-vk-и-dialogflow)\n\t- [9.1 Скопировать project-id dialogflow агента](#91-Скопировать-project-id-dialogflow-агента)\n\t- [9.2 Отредактировать функцию botHandler](#92-Отредактировать-функцию-botHandler)\n\t\t- [9.2.1 Заменить echoMessage(user_id, message) на handleMessage(user_id, message)](#921-Заменить-echoMessageuser_id-message-на-handleMessageuser_id-message)\n\t\t- [9.2.2 Указать свой DF_PROJECT_ID в botHandler.js](#922-Указать-свой-DF_PROJECT_ID-в-botHandlerjs)\n\n## 1 Создание группы\n### 1.1 Нажать создать группу\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_group_1.png)\n\n### 1.2 Выбрать тип группы\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_group_2.png)\n\n### 1.3 Добавить название\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_group_3.png)\n\n## 2 Настройка группы\n### 2.1 Перейти в \"Управление сообществом\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/setup_group_1.png)\n\n### 2.2 Перейти в \"Работа с API\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/setup_group_2.png)\n\n### 2.3 Создать \"Ключ доступа\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/setup_group_3.png)\n\n### 2.4 Скопировать на будущее\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/setup_group_4.png)\n\n### 2.5 Перейти во вкладку \"Callback API\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/enable_api_1.png)\n\n### 2.6 Выбрать \"Тип событий\" - \"Входящие сообщения\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/enable_api_2.png)\n\n### 2.7 Выбрать любой \"Секретный ключ\". Например \"12345\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/enable_api_3.png)\n\n### 2.8 Вставить адрес HTTP Webhook бота из шага 3.3\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/enable_api_4.png)\n\n### 2.9 Включить \"Сообщения\" в группе\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/enable_messages_1.png)\n\n## 3 Создание функции обработчика\n### 3.1 Нажать создать функцию\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_function_1.png)\n\n### 3.2 Выбрать название\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_function_2.png)\n\n### 3.3 Добавить содержимое файлов bot/botHandler.js и bot/package.json. Скопировать адрес HTTP функции\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_function_3.png)\n\n## 4 Создание агента\n### 4.1 Нажать создать агента\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_agent_1.png)\n\n### 4.2 Выбрать название\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_agent_2.png)\n\n### 4.3 Выбрать язык\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_agent_3.png)\n\n### 4.4 Нажать \"создать\"\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_agent_4.png)\n\n\n## 5 Настройка доступа\n### 5.1 Открыть гугл клауд проект агента (кликнув по его названию в dialogflow) и открыть IAM\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/iam_1.png)\n\n### 5.2 Добавить наш сервис аккаунт masterclass-chatbots@appspot.gserviceaccount.com с ролью Dialogflow API Client в проект\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/iam_2.png)\n\n## 6 Создание сущности\n### 6.1 Нажать создать сущность\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_entity_1.png)\n\n### 6.2 Указать название сущности\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_entity_2.png)\n\n### 6.3 Переключится в сырой режим\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_entity_3.png)\n\n### 6.4 Добавить CSV с возможными жанрами из datasets/genres.csv\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_entity_4.png)\n\n### 6.5 Сохранить сущность\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_entity_5.png)\n\n## 7 Создание интента\n### 7.1 Нажать создать интент\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_1.png)\n\n### 7.2 Выбрать название\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_2.png)\n\n### 7.3 Добавить параметры\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_3.png)\n\n### 7.4 Указать название action и добавить опциональный параметр - жанр\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_4.png)\n\n### 7.5 Добавить обязательный параметр - дата, используя системную сущность \\@sys.date\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_5.png)\n\n### 7.6 Придумать и добавить размеченные фразы для обучения модели\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_6.png)\n\n### 7.7 Включить fulfillment\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_7.png)\n\n### 7.8 Включить веб хук\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_8.png)\n\n### 7.9 Сохранить интент\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_intent_9.png)\n\n## 8 Настройка веб хука\n### 8.1 Создать новую функцию вебхук по аналогии функцией обработчиком\n### 8.2 Скопировать содержимое webhook/webhook.js и webhook/package.json в редактор и подеплоить cloud function\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_webhook_1.png)\n\n### 8.3 Открыть настройки fulfillment и включить webhook. Проставить в нем URL созданной функции-вебхука\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_webhook_2.png)\n\n### 8.4 Включить web demo интеграцию\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_webhook_3.png)\n\n### 8.5 Протестировать бота\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/create_webhook_4.png)\n\n## 9 Интеграция vk и dialogflow\n### 9.1 Скопировать project-id dialogflow агента\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/integrate_1.png)\n\n### 9.2 Отредактировать функцию botHandler\n#### 9.2.1 Заменить echoMessage(user_id, message) на handleMessage(user_id, message)\n#### 9.2.2 Указать свой DF_PROJECT_ID в botHandler.js\n![](https://raw.githubusercontent.com/maxkarelov/masterclass-chatbots/master/docs/integrate_2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxkarelov%2Fmasterclass-chatbots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxkarelov%2Fmasterclass-chatbots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxkarelov%2Fmasterclass-chatbots/lists"}