Найти в Дзене

Как создать умного чат-бота для бизнес-аккаунта в Telegram: подробный гайд для начинающих

Всем привет! 👋 Сегодня мы погрузимся в удивительный мир Telegram-ботов и научимся создавать умного помощника для вашего бизнес-аккаунта. Даже если вы никогда раньше не программировали, не волнуйтесь - мы пройдем через каждый шаг вместе! 🤝
Примеры использования бизнес-ботов: Таким образом, бизнес-боты в Telegram открывают широкие возможности для компаний по автоматизации общения с клиентами, повышению качества сервиса и укреплению отношений с аудиторией. Они становятся незаменимыми помощниками в эпоху цифровой трансформации бизнеса. 🚀 Мне в создание бота помогала нейросеть ClaudeAI, для разработки любого бота можно ей скормить документацию API телеграма и документацию API библиотек которые вы используете. Всё просто.
Больше разработок и работы с нейросетями на нашем канале: https://t.me/maya_pro Подписывайтесь !!!!
Установка библиотек в Python, таких как pyTelegramBotAPI и openai с помощью pip, необходима для того, чтобы добавить в ваш проект функциональность, связанную с э
Оглавление

Всем привет! 👋 Сегодня мы погрузимся в удивительный мир Telegram-ботов и научимся создавать умного помощника для вашего бизнес-аккаунта. Даже если вы никогда раньше не программировали, не волнуйтесь - мы пройдем через каждый шаг вместе! 🤝

Как создать бизнес бота для телеграм ?
Как создать бизнес бота для телеграм ?

Основные преимущества и функции бизнес-ботов в телеграм:

  1. Интеграция с бизнес-аккаунтом 🔗 Бизнес-бот может быть подключен к официальному аккаунту компании в Telegram. Это позволяет боту отправлять сообщения и выполнять действия от имени компании, сохраняя при этом узнаваемый бренд и стиль общения.
  2. Автоматизация общения с клиентами 🗣️ Бизнес-боты могут автоматически отвечать на часто задаваемые вопросы, предоставлять информацию о товарах и услугах, помогать с оформлением заказов и решать другие типовые задачи. Это экономит время сотрудников и повышает скорость обслуживания клиентов.
  3. Персонализация взаимодействия 👥 Бизнес-боты могут использовать данные о пользователях (имя, историю заказов, предпочтения) для персонализации общения. Это помогает выстраивать более теплые и доверительные отношения с клиентами, повышая их лояльность к бренду.
  4. Уведомления и рассылки 📢 С помощью бизнес-ботов компании могут отправлять своим клиентам важные уведомления, новости, специальные предложения и другую полезную информацию. Это позволяет поддерживать постоянный контакт с аудиторией и стимулировать повторные продажи.
  5. Аналитика и метрики 📊 Бизнес-боты могут собирать данные о взаимодействии с пользователями (количество запросов, популярные темы, конверсии) и предоставлять ценные аналитические отчеты. Эта информация помогает компаниям лучше понимать своих клиентов и оптимизировать стратегию общения.

Примеры использования бизнес-ботов:

  • Интернет-магазины могут использовать ботов для приема заказов, консультаций по товарам и отслеживания доставки. 🛍️
  • Банки и финансовые сервисы могут предоставлять через ботов информацию о счетах, платежах и курсах валют. 💳
  • Службы доставки еды могут принимать заказы, предлагать персональные рекомендации и информировать о статусе доставки. 🍕
  • Авиакомпании и туристические агентства могут помогать с поиском и бронированием билетов, а также отправлять уведомления о рейсах. ✈️

Таким образом, бизнес-боты в Telegram открывают широкие возможности для компаний по автоматизации общения с клиентами, повышению качества сервиса и укреплению отношений с аудиторией. Они становятся незаменимыми помощниками в эпоху цифровой трансформации бизнеса. 🚀

Мне в создание бота помогала нейросеть ClaudeAI, для разработки любого бота можно ей скормить документацию API телеграма и документацию API библиотек которые вы используете. Всё просто.

Больше разработок и работы с нейросетями на нашем канале:
https://t.me/maya_pro Подписывайтесь !!!!

Шаг 1: Установка Python 🐍

  1. Открой веб-браузер и перейди на официальный сайт Python: https://www.python.org/downloads/
  2. Нажми на большую кнопку "Download Python" и дождись окончания загрузки установочного файла.
  3. Запусти скачанный файл и в появившемся окне установщика обязательно поставь галочку рядом с "Add Python to PATH", затем нажми "Install Now".
  4. Дождись окончания установки и нажми "Close". Python успешно установлен! 🎉

Шаг 2: Установка необходимых библиотек 📚

Установка библиотек в Python, таких как pyTelegramBotAPI и openai с помощью pip, необходима для того, чтобы добавить в ваш проект функциональность, связанную с этими библиотеками. pyTelegramBotAPI используется для создания и управления ботами Telegram в Python, а openai предоставляет доступ к API OpenAI, позволяя интегрировать возможности искусственного интеллекта, такие как GPT, в ваши приложения.

Открой командную строку (терминал):На Windows нажми клавиши Win + R, введи "cmd" и нажми Enter.
На Mac нажми клавиши Cmd + Пробел, введи "Terminal" и нажми Enter.

pip install pyTelegramBotAPI
pip install openai

Эти команды установят нужные нам библиотеки. для работы с телеграм ботами и OpenAI

Шаг 3: Получение токенов API 🔑

Получение токенов API для Telegram и OpenAI позволяет разработчикам создавать приложения и сервисы, которые взаимодействуют с платформами Telegram и OpenAI соответственно. Давайте рассмотрим каждый случай более подробно:

Telegram API Tokens

  1. Боты в Telegram: Токены API необходимы для создания и работы ботов в Telegram. Боты могут выполнять различные функции, такие как отправка уведомлений, автоматизация задач, проведение опросов, предоставление информации и многое другое. Токен API является уникальным ключом, который позволяет вашему приложению аутентифицироваться и взаимодействовать с Telegram Bot API.
  2. Интеграция с сервисами: Благодаря токену API можно интегрировать Telegram с другими внешними сервисами и платформами, такими как системы управления контентом, CRM-системы, веб-приложения и многое другое.
  3. Автоматизация и оптимизация процессов: Боты и интеграции могут помочь автоматизировать многие процессы, такие как ответы на часто задаваемые вопросы, управление подписками или выполнение специфических задач в зависимости от потребностей бизнеса или сообщества.

OpenAI API Tokens

  1. Доступ к моделям искусственного интеллекта: Токены API OpenAI предоставляют доступ к мощным моделям искусственного интеллекта, таким как GPT (Generative Pre-trained Transformer) для генерации текста, DALL-E для генерации изображений, Codex для генерации кода и многим другим. Это позволяет разработчикам интегрировать передовые технологии ИИ в свои приложения и сервисы.
  2. Персонализация и инновации: Использование ИИ может существенно повысить уровень персонализации и инновационность приложений и сервисов, позволяя создавать уникальные пользовательские опыты, такие как автоматизированное создание контента, интеллектуальные чат-боты, автоматическое резюмирование текстов и многое другое.
  3. Исследования и разработки: Токены API дают исследователям и разработчикам возможность использовать передовые технологии ИИ для проведения научных исследований, разработки новых продуктов и решения сложных задач.

В обоих случаях, получение и использование токенов API требует соблюдения политики использования соответствующих платформ, включая ограничения на использование, конфиденциальность и безопасность данных.

Открой Telegram и найди бота @BotFather.

Отправь ему команду /newbot и следуй инструкциям для создания нового бота. В конце тебе будет выдан токен Telegram - сохрани его, он нам скоро понадобится.

Шаг 2: Выберите своего бота 🤖 Отправьте команду /mybots, чтобы получить список ваших ботов. Выберите бота, для которого хотите активировать бизнес-режим.

Шаг 3: Активируйте бизнес-режим 💼 В меню вашего бота нажмите кнопку "Bot Settings" (Настройки бота), а затем выберите опцию "Enable Business Mode" (Включить бизнес-режим).

Business Mode  бот в телеграм
Business Mode бот в телеграм

Зарегистрируйся на сайте OpenAI (https://openai.com) и перейди в раздел API. Создай новый секретный ключ и сохрани его - это будет твой токен OpenAI.

Шаг 4: Создание файла бота 🤖

  1. Открой любой текстовый редактор (например, Блокнот на Windows или TextEdit на Mac).
  2. Скопируй в него следующий код:

import logging
import json
import os
import openai
from telebot import TeleBot, types

import sqlite3

# Настройка детального логирования
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

# Токены API
TELEGRAM_TOKEN = 'ВСТАВЬ_СВОЙ_ТОКЕН_TELEGRAM'
OPENAI_API_KEY = 'ВСТАВЬ_СВОЙ_ТОКЕН_OPENAI'

# Инициализация OpenAI API
openai.api_key = OPENAI_API_KEY

# Инициализация бота Telegram
bot = TeleBot(TELEGRAM_TOKEN)

# Создание таблицы для хранения истории сообщений
def create_table():
conn = sqlite3.connect('chat_history.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS chat_history
(user_id INTEGER, business_connection_id TEXT, message_role TEXT, message_content TEXT)''')
conn.commit()
conn.close()

# Сохранение сообщения в базу данных
def save_message(user_id, business_connection_id, message_role, message_content):
conn = sqlite3.connect('chat_history.db')
c = conn.cursor()
c.execute("INSERT INTO chat_history (user_id, business_connection_id, message_role, message_content) VALUES (?, ?, ?, ?)",
(user_id, business_connection_id, message_role, message_content))
conn.commit()
conn.close()

# Получение истории сообщений для определенного пользователя и бизнес-соединения
def get_chat_history(user_id, business_connection_id):
conn = sqlite3.connect('chat_history.db')
c = conn.cursor()
c.execute("SELECT message_role, message_content FROM chat_history WHERE user_id=? AND business_connection_id=? ORDER BY rowid",
(user_id, business_connection_id))
chat_history = c.fetchall()
conn.close()
return chat_history

# Путь к файлу JSON для хранения данных о бизнес-соединениях
json_db_path = 'business_connections.json'

# Загрузка данных о бизнес-соединениях
def load_business_connections():
if os.path.exists(json_db_path):
with open(json_db_path, 'r') as file:
return json.load(file)
else:
logging.warning("Business connections file not found. Creating a new one.")
return {}

# Сохранение данных о бизнес-соединениях
def save_business_connections(business_connections):
logging.debug(f"Saving business connections: {business_connections}")
try:
with open(json_db_path, 'w') as file:
json.dump(business_connections, file, indent=2)
except Exception as e:
logging.error(f"Error saving business connections: {e}")

# Обновление бизнес-соединения
def update_business_connection(business_connection):
business_connection_id = business_connection.id
user_chat_id = business_connection.user_chat_id
can_reply = business_connection.can_reply
is_enabled = business_connection.is_enabled
date = business_connection.date

logging.debug(f"Updating business connection: {business_connection_id}")
business_connections = load_business_connections()
business_connections[business_connection_id] = {
'user_chat_id': user_chat_id,
'can_reply': can_reply,
'is_enabled': is_enabled,
'date': date
}
save_business_connections(business_connections)

# Получение бизнес-соединения
def get_business_connection(business_connection_id):
business_connections = load_business_connections()
return business_connections.get(business_connection_id)

# Обработчик бизнес-соединений
@bot.business_connection_handler(func=lambda business_connection: True)
def handle_business_connection(business_connection):
update_business_connection(business_connection)
logging.info(f"Business connection updated: {business_connection.id}")

@bot.business_message_handler(func=lambda message: True, content_types=['text', 'photo', 'video'])
def handle_business_message(message):
user_id = message.chat.id
business_connection_id = message.business_connection_id
logging.info(f"Received business message from {user_id}: {message.text}")

# Обновляем информацию о бизнес-соединении
business_connection = get_business_connection(business_connection_id)
if business_connection:
business_connection['can_reply'] = True
business_connection['is_enabled'] = True
save_business_connections(load_business_connections())

# Если это первое сообщение, создаем новое бизнес-соединение
else:
business_connection = {
'user_chat_id': message.chat.id,
'can_reply': True,
'is_enabled': True,
'date': message.date
}
business_connections = load_business_connections()
business_connections[business_connection_id] = business_connection
save_business_connections(business_connections)

if business_connection and business_connection.get('is_enabled') and business_connection.get('can_reply'):
try:
# Сохранение входящего сообщения в базу данных
save_message(user_id, business_connection_id, 'user', message.text)

# Получение истории сообщений из базы данных
chat_history = get_chat_history(user_id, business_connection_id)
messages = [
{"role": "system", "content": "Привет! Ты - ИИ-помощник для бизнеса в Telegram. Отвечай на вопросы пользователей, основываясь на контексте переписки."},
*[{"role": role, "content": content} for role, content in chat_history]
]

response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=1000,
temperature=0.8,
)
message_text = response.choices[0].message.content

# Сохранение ответа бота в базу данных
save_message(user_id, business_connection_id, 'assistant', message_text)

bot.send_message(message.chat.id, message_text, reply_to_message_id=message.id, business_connection_id=business_connection_id)
logging.info("Response sent to business chat")
except Exception as e:
logging.error(f"Error generating or sending response to business chat: {e}")
else:
logging.warning(f"Business connection not found or not enabled: {business_connection_id}")

# Обработчик личных сообщений
@bot.message_handler(content_types=['text'])
def handle_private_message(message):
logging.debug("Handling private message")
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": message.text}
],
max_tokens=50,
temperature=0.7,
)
message_text = response.choices[0].message.content
bot.reply_to(message, message_text)
except Exception as e:
logging.error(f"Error generating or sending response to private chat: {e}")

# Обработчик команды /start
@bot.message_handler(commands=['start'])
def handle_start(message):
logging.debug("Handling /start command")
bot.reply_to(message, "Привет! Я ваш бот.")

if __name__ == "__main__":
create_table() # Создание таблицы для хранения истории сообщений
logging.info("Starting the bot")
bot.infinity_polling()

3. Замени 'ВСТАВЬ_СВОЙ_ТОКЕН_TELEGRAM' на токен Telegram, полученный от @BotFather, а 'ВСТАВЬ_СВОЙ_ТОКЕН_OPENAI' на токен OpenAI из личного кабинета.

4.Сохрани файл с именем telegram_bot.py в удобном для тебя месте на компьютере.

Шаг 5: Запуск бота 🚀

  1. Открой командную строку и перейди в папку, где сохранил файл telegram_bot.py:На Windows введи cd C:\путь\к\папке\с\файлом и нажми Enter.
    На Mac введи cd /путь/к/папке/с/файлом и нажми Enter.
  2. Введи команду python telegram_bot.py и нажми Enter. Если все прошло успешно, ты увидишь сообщение "Starting the bot". Поздравляю, твой бот запущен и готов к работе! 🎉

Шаг 6: Привязка бота к своему бизнес аккаунту

Переходим в настройки своего телеграма
Переходим в настройки своего телеграма
-4

Привязываем своего бота к бизнес аккаунту
Привязываем своего бота к бизнес аккаунту

После всего этого бот должен работать !!! И отвечать на все сообщения пользователей которые вам пишут.

А теперь давай разберем код бота по частям, чтобы лучше понять, как он работает:

Импорт необходимых библиотек:

logging для логирования событий и ошибок
json для работы с JSON-файлами
os для работы с файловой системой
openai для взаимодействия с API OpenAI
telebot для создания Telegram-бота
sqlite3 для работы с базой данных SQLite

Настройка логирования и инициализация API:

Настраиваем детальное логирование с помощью logging.basicConfig()
Указываем токены для Telegram и OpenAI
Инициализируем объекты openai и bot для взаимодействия с соответствующими API

Функции для работы с базой данных:

create_table() создает таблицу в базе данных для хранения истории сообщений
save_message() сохраняет сообщение в базу данных
get_chat_history() получает историю сообщений для определенного пользователя и бизнес-соединения

Функции для работы с бизнес-соединениями:

load_business_connections() загружает данные о бизнес-соединениях из JSON-файла
save_business_connections() сохраняет данные о бизнес-соединениях в JSON-файл
update_business_connection() обновляет информацию о бизнес-соединении
get_business_connection() получает информацию о конкретном бизнес-соединении

Обработчики сообщений:

handle_business_connection() обрабатывает обновления бизнес-соединений
handle_business_message() обрабатывает сообщения от бизнес-аккаунтов, генерирует ответы с помощью ChatGPT и отправляет их обратно пользователю
handle_private_message() обрабатывает личные сообщения, генерирует ответы с помощью ChatGPT и отправляет их обратно пользователю
handle_start() обрабатывает команду /start и отправляет приветственное сообщение

Запуск бота:
Если файл запущен напрямую (а не импортирован), выполняется блок if __name__ == "__main__":Создается таблица в базе данных для хранения истории сообщений


смотреть видео
смотреть видео


https://dzen.ru/video/watch/66c2ebd6d5527e11dedf8d84

Больше разработок и работы с нейросетями на нашем канале: https://t.me/maya_pro Подписывайтесь !!!!

Telegram
33,2 тыс интересуются