Всем привет! 👋 Сегодня мы погрузимся в удивительный мир Telegram-ботов и научимся создавать умного помощника для вашего бизнес-аккаунта. Даже если вы никогда раньше не программировали, не волнуйтесь - мы пройдем через каждый шаг вместе! 🤝
Основные преимущества и функции бизнес-ботов в телеграм:
- Интеграция с бизнес-аккаунтом 🔗 Бизнес-бот может быть подключен к официальному аккаунту компании в Telegram. Это позволяет боту отправлять сообщения и выполнять действия от имени компании, сохраняя при этом узнаваемый бренд и стиль общения.
- Автоматизация общения с клиентами 🗣️ Бизнес-боты могут автоматически отвечать на часто задаваемые вопросы, предоставлять информацию о товарах и услугах, помогать с оформлением заказов и решать другие типовые задачи. Это экономит время сотрудников и повышает скорость обслуживания клиентов.
- Персонализация взаимодействия 👥 Бизнес-боты могут использовать данные о пользователях (имя, историю заказов, предпочтения) для персонализации общения. Это помогает выстраивать более теплые и доверительные отношения с клиентами, повышая их лояльность к бренду.
- Уведомления и рассылки 📢 С помощью бизнес-ботов компании могут отправлять своим клиентам важные уведомления, новости, специальные предложения и другую полезную информацию. Это позволяет поддерживать постоянный контакт с аудиторией и стимулировать повторные продажи.
- Аналитика и метрики 📊 Бизнес-боты могут собирать данные о взаимодействии с пользователями (количество запросов, популярные темы, конверсии) и предоставлять ценные аналитические отчеты. Эта информация помогает компаниям лучше понимать своих клиентов и оптимизировать стратегию общения.
Примеры использования бизнес-ботов:
- Интернет-магазины могут использовать ботов для приема заказов, консультаций по товарам и отслеживания доставки. 🛍️
- Банки и финансовые сервисы могут предоставлять через ботов информацию о счетах, платежах и курсах валют. 💳
- Службы доставки еды могут принимать заказы, предлагать персональные рекомендации и информировать о статусе доставки. 🍕
- Авиакомпании и туристические агентства могут помогать с поиском и бронированием билетов, а также отправлять уведомления о рейсах. ✈️
Таким образом, бизнес-боты в Telegram открывают широкие возможности для компаний по автоматизации общения с клиентами, повышению качества сервиса и укреплению отношений с аудиторией. Они становятся незаменимыми помощниками в эпоху цифровой трансформации бизнеса. 🚀
Мне в создание бота помогала нейросеть ClaudeAI, для разработки любого бота можно ей скормить документацию API телеграма и документацию API библиотек которые вы используете. Всё просто.
Больше разработок и работы с нейросетями на нашем канале: https://t.me/maya_pro Подписывайтесь !!!!
Шаг 1: Установка Python 🐍
- Открой веб-браузер и перейди на официальный сайт Python: https://www.python.org/downloads/
- Нажми на большую кнопку "Download Python" и дождись окончания загрузки установочного файла.
- Запусти скачанный файл и в появившемся окне установщика обязательно поставь галочку рядом с "Add Python to PATH", затем нажми "Install Now".
- Дождись окончания установки и нажми "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
- Боты в Telegram: Токены API необходимы для создания и работы ботов в Telegram. Боты могут выполнять различные функции, такие как отправка уведомлений, автоматизация задач, проведение опросов, предоставление информации и многое другое. Токен API является уникальным ключом, который позволяет вашему приложению аутентифицироваться и взаимодействовать с Telegram Bot API.
- Интеграция с сервисами: Благодаря токену API можно интегрировать Telegram с другими внешними сервисами и платформами, такими как системы управления контентом, CRM-системы, веб-приложения и многое другое.
- Автоматизация и оптимизация процессов: Боты и интеграции могут помочь автоматизировать многие процессы, такие как ответы на часто задаваемые вопросы, управление подписками или выполнение специфических задач в зависимости от потребностей бизнеса или сообщества.
OpenAI API Tokens
- Доступ к моделям искусственного интеллекта: Токены API OpenAI предоставляют доступ к мощным моделям искусственного интеллекта, таким как GPT (Generative Pre-trained Transformer) для генерации текста, DALL-E для генерации изображений, Codex для генерации кода и многим другим. Это позволяет разработчикам интегрировать передовые технологии ИИ в свои приложения и сервисы.
- Персонализация и инновации: Использование ИИ может существенно повысить уровень персонализации и инновационность приложений и сервисов, позволяя создавать уникальные пользовательские опыты, такие как автоматизированное создание контента, интеллектуальные чат-боты, автоматическое резюмирование текстов и многое другое.
- Исследования и разработки: Токены API дают исследователям и разработчикам возможность использовать передовые технологии ИИ для проведения научных исследований, разработки новых продуктов и решения сложных задач.
В обоих случаях, получение и использование токенов API требует соблюдения политики использования соответствующих платформ, включая ограничения на использование, конфиденциальность и безопасность данных.
Открой Telegram и найди бота @BotFather.
Отправь ему команду /newbot и следуй инструкциям для создания нового бота. В конце тебе будет выдан токен Telegram - сохрани его, он нам скоро понадобится.
Шаг 2: Выберите своего бота 🤖 Отправьте команду /mybots, чтобы получить список ваших ботов. Выберите бота, для которого хотите активировать бизнес-режим.
Шаг 3: Активируйте бизнес-режим 💼 В меню вашего бота нажмите кнопку "Bot Settings" (Настройки бота), а затем выберите опцию "Enable Business Mode" (Включить бизнес-режим).
Зарегистрируйся на сайте OpenAI (https://openai.com) и перейди в раздел API. Создай новый секретный ключ и сохрани его - это будет твой токен OpenAI.
Шаг 4: Создание файла бота 🤖
- Открой любой текстовый редактор (например, Блокнот на Windows или TextEdit на Mac).
- Скопируй в него следующий код:
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: Запуск бота 🚀
- Открой командную строку и перейди в папку, где сохранил файл telegram_bot.py:На Windows введи cd C:\путь\к\папке\с\файлом и нажми Enter.
На Mac введи cd /путь/к/папке/с/файлом и нажми Enter. - Введи команду python telegram_bot.py и нажми Enter. Если все прошло успешно, ты увидишь сообщение "Starting the bot". Поздравляю, твой бот запущен и готов к работе! 🎉
Шаг 6: Привязка бота к своему бизнес аккаунту
После всего этого бот должен работать !!! И отвечать на все сообщения пользователей которые вам пишут.
А теперь давай разберем код бота по частям, чтобы лучше понять, как он работает:
Импорт необходимых библиотек:
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