В нашем современном мире создание онлайн-платформы для общения между клиентами и представителями компании — это необходимое требование для многих бизнесов. Онлайн-чат для сайта является одним из наиболее эффективных и удобных способов связи с потенциальными клиентами и удержания уже имеющихся из-за своей быстрой и простой обработки сообщений.
Я следил за различными видами использования chatGPT с момента его выхода. Описываемое далее решение я еще не встречал и поэтому думаю оно будет кому-то полезным.
Формулировка задачи
Необходимо создать онлайн-чата для сайта со следующими возможностями:
- Общение с посетителями на любых языках
- Запрос варианта ответа на запрос посетителя у chatGPT, обученного на базе знаний компании
- Реализовать все на бесплатных сервисах
Шаг №1: Выбор сервиса для онлайн-чата
Для реализации задачи нам нужна возможность ставить свой обработчик на событие отправки сообщения посетителя. При этом сам сервис должен быть бесплатным.
Как связать Notion и Telegram? | Два рабочих способа
По итогу был выбрал сервис Tawk.to, у которого есть вот эти два обработчика:
Шаг №2: Обучение chatGPT
Для формирования базы знаний компании мы будем использовать библиотеку:
️ LlamaIndex (GPT Index)
Вот пример использования библиотеки из официальной документации
!pip install llama-index import os os.environ[«OPENAI_API_KEY»] = ‘YOUR_OPENAI_API_KEY’ from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader documents = SimpleDirectoryReader(‘data’).load_data() index = GPTSimpleVectorIndex(documents) # save to disk index.save_to_disk(‘index.json’) # load from disk index = GPTSimpleVectorIndex.load_from_disk(‘index.json’) index.query(«?»)
В качестве данных для формирование базы мы используем краткое описание компании и поместим его в текстовый файл:
# auras.txt AURA Services AURA Services, based in Tel Aviv, Israel, is a platform that mediates between local partner performers and clients and focused on short-term local services. AURA do marketing and local advertisement to promote local partner performers. The company acts as a broker and charges a commission from local partner performers for promotion of each service for clients.
Шаг №3: Подготовка базы в Notion
Все поступающие сообщения от посетителей мы будем сохранять в Notion.
Вот шаблон таблицы:
Процесс создания интеграции хорошо описан в этой статье:
У нас будет вот такая функция для создание записей в таблице Notion:
def insertDatabase(databaseId, record, token): headers = < «Accept»: «application/json», «Authorization»: «Bearer » + token, «Content-Type»: «application/json», «Notion-Version»: «2021-05-13», >createUrl = «https://api.notion.com/v1/pages» data = json.dumps(record) res = requests.request(«POST», createUrl, headers=headers, data=data) return res
Пример записи в таблицу:
Постановка задач в Notion через Telegram
record = ,»properties»: <>> record[‘properties’][‘URL’] = >]> record[‘properties’][‘Message’] = >]> record[‘properties’][‘chatGPT_reply_English’] = >]> insertDatabase(databaseId, record, token)
Шаг №4: Создание Телеграм-бота
Шаг №5: Запуск HTTP API на Flask
Для обработки поступающих от посетителей сообщений нам необходимо написать небольшой Backend на Flask.
У нас будет только одна точка входа в API, которая принимает входящее сообщение, затем отправляет запрос в chatGPT и просит его ответить на 3-х языках. Полученные ответы мы отправляем в телеграм бот и в таблицу Notion.
Вот код нашего API:
Шаг №6: Отправка сообщений из чата на сайте на HTTP API
И финальная часть — мы добавляем обработчик в виджет чата Tawk.to:
Итог
Я надеюсь данное решение будет вам полезно и если вы используете его где-то, напишите пожалуйста про это в комментариях.
И конечно я готов ответить на все ваши вопросы, пишите в мой ТГ.
Источник: habr.com
Создаём Telegram-бота без кода с помощью сервиса n8n
На днях сделал себе телеграм-бота, который закидывает все записи в Notion. Давно об этом мечтал, т.к. в Saved Messages записи теряются и забываются, а в ноушн я залажу каждый день. Теперь я пишу в бота, запись попадает в таблицу-бэклог в ноушне, а затем раз в неделю я этот бэклог разгребаю.
Сделать такого бота мне помог новый сервис автоматизации n8n. Это аналог Zapier, только более мощный, наглядный и бесплатный. Составляем цепочки действий, подцепляем токены, настраиваем триггеры и всё это без кода. На установку и создание бота у меня ушло меньше часа.
У n8n есть 3 опции:
- Cloud: если не хочется разбираться с установкой, а просто начать пользоваться сервисом. Эта опция платная, от 20$ в месяц.
- Desktop: ты просто устанавливаешь на компьютер приложение и бесплатно пользуешься. Но чтобы ваша автоматизация работала постоянно, компьютер придется всегда держать включенным.
- Self-hosted: бесплатная опция, которая потребует свой сервер, домен и немножко кода.
У меня есть свой сервер на Digital Ocean (вот рефка — по ней вам 100$), поэтому я выбрал третью опцию. На сайте n8n есть инструкция для DO, с помощью которой я установил сервис минут за 15.
Дальше расскажу, как я сделал телеграм-бота-пересыльщика.
1. Создаем нового бота через бота BotFather и сохраняем токен
2. Идём в Notion, создаём новую интеграцию и сохраняем токен. Дальше эту интеграцию цепляем к странице с базой данной, в которую хотим сохранять записи.
3. Перейдём к n8n. Скачиваем мой шаблон, который уже содержит нужную нам автоматизацию. Не буду рассказывать про инструментарий — сами поиграетесь.
4. В левой части экрана, в разделе Workflows, кликаем по Import from file и находим шаблон. Вы увидите уже готовую цепочку действий.
5. Теперь нужно завести ключи для токенов бота и ноушена. Кликаем New в Credentials. В поиске находим Telegram API. В Access Token вставляем токен нашего бота из BotFather. В левом углу можно задать имя.
Сохраняем.
6. То же самое теперь делаем для ноушена, только теперь ищем Notion API.
7. Возвращаемся к цепочке. Дважды кликаем на Telegram Trigger. Это узел, который слушает не отправлено ли в бота сообщение. В Credential for Telegram API выбираете ваш токен. Если нажать на Listen For Event и отправить в бота сообщение, то оно уже должно появиться справа, в зоне Output.
Там же можно увидеть айди вашего личного Telegram-аккаунта — он понадобится на следующем шаге.
8. Переходим к следующему узлу — If. Здесь мы проверяем, что написавший в бота аккаунт, это ваш аккаунт. В Value 2 нужно вставить ваш айди из прошлого шага. В Value 1 мы получаем айди аккаунта, написавшего в бота, и сравниваем его с Value 2.
9. Если значения не равны, то мы попадаем на узел Telegram Message. Этот узел отправит ответное сообщение любому пользователю, кроме вас. В поле Text можно отредактировать это сообщение.
10. Если в бота написали вы, то сценарий перейдет к узлу Notion Action. Дважды кликаем на Notion Action и в Credential for Notion API выбираем токен, который создавали на шаге 6.
11. В поле Database Name or ID у вас должна появиться БД со страницы, подключенной на шаге 2. В блоке Properties, в поле Key Name or ID выбираем свойство, в которое будет попадать запись, скорее всего это будет Name.
12. Всё настроено! Чтобы проверить, нажимаем на кнопку Execute Workflow и пишем в бота. На узлах цепочки должны появиться зеленые галочки, а в вашем ноушене — новая запись.
13. Чтобы автоматизация работала постоянно, нужно в правом верхнем углу переключить в Active. Если переключатель неактивен, то нужно просто задать имя канваса в левом верхнем углу и сохранить.
Мне прям очень понравился инструментарий: довольно интересные вещи можно творить с ним, почти не прибегая к коду.
Зарегаться в сервисе n8n можно по моей ссылке, за что вам абсолютно ничего не будет! Для него вам вероятно понадобится сервак, и вот тут моя ссылка на Digital Ocean даст вам 100$.
Источник: pronomad.ru
Telegram бот для отправки заметок в Notion
Наверняка, вы тоже заметили, что интерфейс Notion не удобен на мобильных устройствах, а создание новой заметки забирает слишком много времени. Из-за этого, иногда приходится использовать другие приложения для заметок, в следствии чего, заметки либо дублируются потом в Notion, либо об их существовании забывают. Это особенно актуально для тех, кто использует Notion как основной инструмент для заметок или системы таск-менеджмента типа GTD.
178 просмотров
Из-за этой проблемы я и сделал Telegram-бот для быстрой и удобной отправки заметок в Notion.
Этот бот сократил количество действия для отправки моих мыслей в Notion до пары кликов.
Изначально, я делал бота только для себя, а позже дал возможность бесплатно пользоваться и другим людям, рассказав о боте в некоторых чатах Telegram по Notion. Уже сейчас в бота идет ежедневный приток новых пользователей без активного пиара с моей стороны.
Сейчас у проекта более 100 активных пользователей, которые отправляли заметки в течении недели.
В день отправляется более 70 заметок.
Судя по отзывам, многие перестают использовать мобильный Notion, и создают заметки только через бота. Сам же я использую бота каждый день. Очень комфортно записывать мысли в интерфейсе Telegram.
Из-за такого спроса, я начал монетизацию проекта через платную подписку.
На бесплатном тарифе каждый может отправлять не более 30 заметок в месяц. Подписка позволяет отправлять заметки без ограничений за 120 рублей в месяц.
Возможности и преимущества бота
- Удобное создание заметок: достаточно просто отправить в чат с ботом любое сообщение
- Удобное дополнение уже отправленных заметок: надо просто ответить на сообщение с уже ранее отправленной заметкой, и бот создаст новые блоки на странице заметки в Notion
- Полное сохранение форматирование текста
- Отправка любых файлов: видео, аудио, фото, голосовые сообщения, видео-кружочки и т.д.
- Склеивание пересылаемых сообщений в одну заметку: если в бота отправить одновременно несколько сообщений, то все они попадут в одну заметку. Это особенно удобно при пересылки сообщений из других чатов
- Возможность работы бота в групповых чатах: бота можно добавить в групповой чат, и он будет пересылать все сообщения из чата в Notion.
Работа в групповых чатах
Был запрос на использование бота для команды людей, чтобы каждый участник чата мог отправлять заметки в общий чат, а они сохранялись в единой таблице Notion.
Запрос был исполнен. Бота можно добавить в групповой чат и он будет пересылать все сообщения из чата в Notion.
Настройка бота в групповом чате ничем не отличается от обычной, за исключением одного момента: в групповых чатах нет бесплатного тарифа и подписка привязывается к конкретному чату, где используется бот, а не к пользователю. Соответственно, для каждого группового чата потребуется отдельная подписка.
В будущем, планирую реализовать более удобный тариф для групповых чатов, с привязкой подписки к конкретному аккаунту, а не к чату.
Буду рад фидбеку и предложениям по улучшению бота!
Источник: vc.ru