# Телеграм-бот на Python

> Источник: https://aigptbot.ru/telegram-bot/
> Обновлено: 2026-10-18
> Сервис: AiGPTbot (aigptbot.ru) — онлайн нейросеть на русском языке.

Нейросеть поможет спроектировать Telegram-бота на Python, выбрать библиотеку и собрать рабочую основу с командами, кнопками и хранением данных. Также подскажет структуру проекта, обработку состояний и подключение SQLite.

## 🛠️ AI GPT для программирования

C
C++ Builder и VCL
C, C++, C#
CSS
H
HTML
J
Java
JavaScript
L
Linux
P
php
Python
S
SQL
Г
Генератор игр на HTML и JavaScript
Графики и анализ данных на Python
К
Код для Arduino, ESP32 и STM32
Код и запросы 1С
М
Макросы VBA для Excel
Н
Найти и исправить ошибку в коде
П
Приложения на PyQt и PySide
Программы на Pascal для школы
Программы на Tkinter
С
Скрипты Bash и PowerShell
Скрипты Roblox на Lua
Скрипты Unity на C#
Т
Телеграм-бот на Python

## Что умеет нейросеть

- Спроектировать Telegram-бота на Python с командами /start, /help и пользовательскими сценариями.
- Показать, как сделать кнопки и клавиатуры в aiogram 3 и pyTelegramBotAPI.
- Объяснить работу состояний FSM для пошагового общения с пользователем.
- Подсказать, как хранить данные бота в SQLite и организовать таблицы.
- Помочь вынести токен бота в переменную окружения и безопасно читать его в коде.
- Собрать короткий рабочий пример бота с обработчиками, клавиатурой и сохранением данных.

## Примеры запросов

Нажмите на пример под чатом — он подставится в поле ввода. Или напишите задачу своими словами.

> «Нужен Telegram-бот на Python для записи заявок: команды /start и /help, кнопки меню, хранение заявок в SQLite.»

> «Напиши пример на aiogram 3: команда /start, inline-кнопка, обработка нажатия и ответ пользователю.»

> «Сделай бота на pyTelegramBotAPI с обычной клавиатурой, двумя кнопками и простым диалогом по шагам.»

> «Как организовать FSM в aiogram 3 для формы из имени, телефона и комментария? Покажи структуру кода.»

> «Нужен пример подключения SQLite к Telegram-боту: создать таблицу пользователей и сохранять chat_id.»

## Как получить рабочий результат

1. Сразу укажите, какую библиотеку хотите использовать: aiogram 3 или pyTelegramBotAPI, чтобы код был совместимым.
2. Опишите сценарий пользователя по шагам: какие команды, кнопки и сообщения должны быть в диалоге.
3. Если нужна база, перечислите поля таблиц и что именно нужно хранить в SQLite.
4. Укажите, где будет храниться токен, и попросите использовать переменную окружения вместо захардкоженного значения.
5. Попросите готовый результат в конкретном виде: один файл, набор модулей или пример с комментариями.

## Разборы типичных задач

### Бот с командами и кнопками

Ниже показан минимальный пример на aiogram 3: команда /start отправляет клавиатуру, а кнопка обрабатывается как обычное действие. Подходит как стартовая точка для меню бота.

> «Сделай минимальный Telegram-бот на aiogram 3: /start, кнопка «Профиль» и ответ на нажатие.»

```
import asyncio
import os
from aiogram import Bot, Dispatcher, F
from aiogram.filters import CommandStart
from aiogram.types import Message, ReplyKeyboardMarkup, KeyboardButton

bot = Bot(token=os.environ["BOT_TOKEN"])
dp = Dispatcher()
kb = ReplyKeyboardMarkup(keyboard=[[KeyboardButton(text="Профиль")]], resize_keyboard=True)

@dp.message(CommandStart())
async def start(message: Message):
    await message.answer("Привет!", reply_markup=kb)

@dp.message(F.text == "Профиль")
async def profile(message: Message):
    await message.answer(f"Ваш id: {message.from_user.id}")

async def main():
    await dp.start_polling(bot)

asyncio.run(main())
```

### Пошаговая форма с состояниями

Если бот собирает данные по этапам, удобнее использовать FSM: сначала имя, потом телефон, затем комментарий. Это снижает путаницу и упрощает сохранение результата в базу.

> «Покажи пример FSM на aiogram 3 для формы: имя, телефон, комментарий, затем сохранить данные.»

```
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import Message

class Form(StatesGroup):
    name = State()
    phone = State()

bot = Bot(token="TOKEN")
dp = Dispatcher(storage=MemoryStorage())

@dp.message(CommandStart())
async def start(message: Message, state: FSMContext):
    await state.set_state(Form.name)
    await message.answer("Как вас зовут?")

@dp.message(Form.name)
async def get_name(message: Message, state: FSMContext):
    await state.update_data(name=message.text)
    await state.set_state(Form.phone)
    await message.answer("Введите телефон")

async def main():
    await dp.start_polling(bot)

asyncio.run(main())
```

### Сохранение пользователей в SQLite

Для простого учета пользователей и заявок SQLite подходит отлично. Нейросеть может помочь создать таблицу, вставку данных и чтение истории по chat_id.

> «Нужен пример на Python: создать таблицу users в SQLite и сохранять туда chat_id, username и дату первого сообщения.»

```
import sqlite3
from datetime import datetime

conn = sqlite3.connect("bot.db")
cur = conn.cursor()
cur.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    chat_id INTEGER UNIQUE,
    username TEXT,
    created_at TEXT
)
""")
conn.commit()

def save_user(chat_id, username):
    cur.execute(
        "INSERT OR IGNORE INTO users(chat_id, username, created_at) VALUES (?, ?, ?)",
        (chat_id, username, datetime.utcnow().isoformat())
    )
    conn.commit()
```

## Что даёт тариф

Платный тариф полезен, если нужен более сильный режим GPT-5+ для сложной архитектуры бота, длинных ответов и проработки edge cases. Также удобнее работать с загрузкой файлов целиком: структурой проекта, несколькими модулями и уже готовым кодом. Первый месяц «Продвинутого» — 99 ₽, подробности на странице [тарифов](/tarify/).

## Ограничения и безопасность

- Проверяйте код перед запуском: нейросеть может предложить рабочий, но не протестированный фрагмент.
- Не вставляйте в чат пароли, токены бота, ключи API и доступы к базе данных.
- Если нужен конкретный фреймворк, сразу укажите его версию: aiogram 3 и pyTelegramBotAPI отличаются по стилю кода.
- SQLite подходит для простых проектов, но для высокой нагрузки и совместной записи может понадобиться другая база.

## Часто задаваемые вопросы

Что выбрать для нового Telegram-бота: aiogram 3 или pyTelegramBotAPI?
Если нужен современный асинхронный подход и удобная работа с состояниями, чаще выбирают aiogram 3. Если важна простота и привычный синхронный стиль, подойдет pyTelegramBotAPI.
Как правильно хранить токен Telegram-бота?
Токен лучше хранить в переменной окружения, а не в коде. Так его проще не утечь в репозиторий и удобнее менять при необходимости.
Можно ли сделать кнопки и меню без inline-кнопок?
Да, можно использовать обычные reply-клавиатуры. Они подходят для простого меню и быстрых ответов пользователя.
Зачем нужны состояния в боте?
Состояния помогают вести пользователя по шагам: спросить имя, потом телефон, потом комментарий. Без них сложнее удерживать контекст диалога.
Подойдет ли SQLite для Telegram-бота?
Да, для небольшого или среднего проекта SQLite часто достаточно. Если бот активно пишет данные одновременно или растет по нагрузке, стоит заранее продумать более серьезную БД.
Можно ли сразу получить готовый код под мой сценарий?
Да, если вы опишете команды, кнопки, данные для сохранения и библиотеку. Тогда нейросеть соберет пример под ваш сценарий, а не общий шаблон.
