Нейросеть поможет спроектировать Telegram-бота на Python, выбрать библиотеку и собрать рабочую основу с командами, кнопками и хранением данных. Также подскажет структуру проекта, обработку состояний и подключение SQLite.
🛠️ AI GPT для программирования
Что умеет нейросеть
- Спроектировать Telegram-бота на Python с командами /start, /help и пользовательскими сценариями.
- Показать, как сделать кнопки и клавиатуры в aiogram 3 и pyTelegramBotAPI.
- Объяснить работу состояний FSM для пошагового общения с пользователем.
- Подсказать, как хранить данные бота в SQLite и организовать таблицы.
- Помочь вынести токен бота в переменную окружения и безопасно читать его в коде.
- Собрать короткий рабочий пример бота с обработчиками, клавиатурой и сохранением данных.
Как получить рабочий результат
- Сразу укажите, какую библиотеку хотите использовать: aiogram 3 или pyTelegramBotAPI, чтобы код был совместимым.
- Опишите сценарий пользователя по шагам: какие команды, кнопки и сообщения должны быть в диалоге.
- Если нужна база, перечислите поля таблиц и что именно нужно хранить в SQLite.
- Укажите, где будет храниться токен, и попросите использовать переменную окружения вместо захардкоженного значения.
- Попросите готовый результат в конкретном виде: один файл, набор модулей или пример с комментариями.
Разборы типичных задач
Бот с командами и кнопками
Ниже показан минимальный пример на 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 ₽, подробности на странице тарифов.
Ограничения и безопасность
- Проверяйте код перед запуском: нейросеть может предложить рабочий, но не протестированный фрагмент.
- Не вставляйте в чат пароли, токены бота, ключи API и доступы к базе данных.
- Если нужен конкретный фреймворк, сразу укажите его версию: aiogram 3 и pyTelegramBotAPI отличаются по стилю кода.
- SQLite подходит для простых проектов, но для высокой нагрузки и совместной записи может понадобиться другая база.
Часто задаваемые вопросы
Все инструменты раздела — 👨💻 Программирование.