惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
爱范儿
爱范儿
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 叶小钗
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
博客园 - 司徒正美
博客园 - 【当耐特】
IT之家
IT之家

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Claude пишет — бот работает: полный цикл создания Telegra...
Andrey_Popov · 2026-05-01 · via Все публикации подряд на Хабре

Привет, Хабр!

В последние годы разработка ускорилась так, что старые подходы уже не успевают за новыми реалиями. Но дело не в новых языках или фреймворках. Появился другой рабочий сценарий — когда разработчик перекладывает часть рутины на нейросеть и ведёт её через обычный диалог. Это и называют вайбкодингом.

Звучит как модный термин, но по факту всё просто: вы меньше печатаете, больше управляете. Ставите задачу, задаёте границы, проверяете результат. И да, промптинг здесь — не магия, а обычная инструкция для модели.

Сегодня на практике посмотрим, как это работает. Создадим Telegram-бота-ассистента через вайбкодинг с Claude. Бот будет отвечать на вопросы, переформулировать текст и делать краткие саммари. А потом задеплоим его на сервер.

Шаг 1. Создаём бота через BotFather

Первым делом заходим в Telegram. В строке поиска вводим @BotFather — это официальный бот от самой Telegram, который выдает токены для новых ботов. Выглядит он как синяя галочка и ник, заканчивающийся на bot.

Нажимаем /start или просто отправляем команду /newbot. BotFather спросит: "Alright, a new bot. How are we going to call it? Please choose a name for your bot."

Имя — это то, как бот будет отображаться в вашем списке контактов и диалогах. Оно может быть любым, на русском или английском, с пробелами и эмодзи. Например: Личный ассистент или Student Helper Bot.

Отправили имя. Дальше BotFather попросит username — уникальный короткий адрес, по которому бота можно будет найти. Тут строгие правила:

  • Только латиница и цифры (без пробелов и спецсимволов)

  • Обязательно заканчивается на bot

  • Длина — минимум 5 символов

  • Например: your_awesome_assistant_bot или study_helper_bot

Если username уже занят, BotFather выдаст ошибку — придётся придумать другой, чуть длиннее или с цифрами.

бывает

бывает

Когда username успешно принят, BotFather поздравляет и показывает токен. Это длинная строка вида:

7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks

Токен — это ключ, через который ваш код будет управлять ботом. Его нельзя показывать никому, загружать на GitHub или вставлять в публичные чаты. Если токен утек, любой человек сможет управлять вашим ботом — писать от его имени, читать сообщения пользователей.

Сохраните токен в надёжное место. Лучше всего — в отдельный файл .env, который Git будет игнорировать (через .gitignore). Пример содержимого .env:

BOT_TOKEN=7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks

Помимо токена, BotFather предлагает ещё несколько настроек:

  • /setdescription — краткое описание бота (показывается в профиле)

  • /setuserpic — аватарка бота

  • /setcommands — список команд с подсказками, которые будут выпадать при вводе / в чате с ботом (очень удобно для пользователей)

Теперь у нас есть токен, username. Переходим к следующему шагу — вайбкодим логику через Claude.

Откуда брать идеи для промптов

И тут многие спотыкаются. Токен есть, желание есть, а с чего начать — непонятно. Как объяснить Claude, что именно писать? Какие команды сделать? Какую логику закладывать?

Можно полчаса сидеть, формулировать, переписывать, снова стирать. А можно поступить проще.

Я создал бесплатного Telegram‑бота, который объединяет сразу несколько моделей — ChatGPT, Gemini, Grok и DeepSeek. И я, когда пишу промпты для Claude, часто сначала прогоняю идею через этот бот. Просто описываю, чего хочу добиться, а он помогает структурировать задачу, подсказывает архитектуру, набрасывает черновик промпта.

Сам бот: https://t.me/ChatGPTAIAssistantBot

А теперь — к делу. Промпт готов, идём в Claude.

Шаг 2. Вайбкодим бота через Claude

Теперь самое интересное. Идём в Claude или любого другого ИИ-ассистента, который умеет писать код — подойдёт также ChatGPT, DeepSeek или GitHub Copilot. Но для примера возьмём Claude.

Первый промпт. Не пытаемся сделать идеально с первого раза. Просто даём понятное описание того, что хотим получить:

Напиши мне телеграм-бота на Python с библиотекой aiogram, html теги, бд sqlite, logging всех сообщений. Бот должен работать как ИИ-ассистент через OpenRouter API key.

Что нужно:

  1. Бот получает API-ключ OpenRouter из переменной окружения OPENROUTER_API_KEY.

  2. На любое текстовое сообщение от пользователя бот отправляет запрос к OpenRouter API и возвращает ответ от ИИ-модели.

  3. Используй топ-5 бесплатных моделей OpenRouter в качестве fallback. Если одна модель недоступна или выдаёт ошибку — автоматически переключайся на следующую по списку. Список моделей:

    • google/gemini-2.0-flash-exp:free

    • anthropic/claude-3.5-haiku-20241022:free

    • mistralai/mistral-7b-instruct:free

    • meta-llama/llama-3.2-3b-instruct:free

    • qwen/qwen-2.5-7b-instruct:free

  4. Если все модели недоступны — бот отвечает: "Все модели временно недоступны, попробуйте позже".

  5. Добавь обработку ошибок, таймауты (30 секунд), логирование в консоль.

  6. Сделай базовую структуру: main.py с хендлерами команд (/start, /help) и обработчиком текстовых сообщений. Добавь requirements.txt. Код прокомментируй на русском.

диалог с клауди

диалог с клауди

Claude сгенерирует код с логикой работы через OpenRouter, циклическим перебором моделей и обработкой ошибок.

Смотрим код. Проверяем, что всё правильно: есть команда /start, есть /help, есть асинхронная функция для запросов к OpenRouter, которая перебирает модели по очереди.

Вот тут и начинается вайбкодинг. Смотрим, что можно улучшить (пример, сами вы можете написать другие улучшения):

Хорошо, код рабочий. Но добавь ещё пару моментов. Во-первых, сделай так, чтобы в каждом запросе к OpenRouter передавался параметр "temperature": 0.7 для более креативных ответов. Во-вторых, добавь ограничение на длину истории диалога — храни последние 5 сообщений, чтобы не перегружать контекст. В-третьих, сделай команду /models — чтобы бот показывал, какие модели доступны в его ротации.

Claude поправит код. Теперь бот помнит контекст диалога, умеет показывать список моделей и отвечает чуточку интереснее за счёт температуры.

Тестируем локально. Сохраняем файлы в папку проекта. Назовём её, например, tg_assistant_bot. Главный файл — main.py. Рядом создаём .env с токеном Telegram и API-ключом OpenRouter:

BOT_TOKEN=7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks
OPENROUTER_API_KEY=sk-or-v1-...

Как получить ключ OpenRouter? Идёте на openrouter.ai, регистрируетесь, заходите в раздел Keys, создаёте новый ключ — он бесплатный для работы с бесплатными моделями.

И requirements.txt:

aiogram>=3.0.0
python-dotenv>=1.0.0
httpx>=0.24.0

Запускаем локально: python3 main.py. Открываем Telegram, пишем боту "Привет, как дела?". Бот отправляет запрос к первой модели из списка (Gemini) и возвращает ответ. Если Gemini недоступен — переключается на Claude, потом на Mistral, и так по списку.

Проверяем команду /models — бот показывает пять моделей в порядке приоритета.

Всё работает. Бот использует бесплатные модели OpenRouter, ротация даёт отказоустойчивость — даже если одна модель временно недоступна, остальные подхватят.

Код готов, бот работает. Теперь его нужно положить на сервер, чтобы он отвечал 24/7, даже когда компьютер выключен.

Не всегда хочется сидеть в диалоге с моделью по 10 итераций. Иногда нужен просто рабочий проект сразу.

Поэтому я сделал бесплатного телеграм‑бота, который генерирует ботов под ключ. Одна идея — один запрос — готовый код. Без лишних разговоров.

Сам бот: https://t.me/GenerateYourAIBot

а теперь к деплою

Шаг 3. Деплой проекта в продакшен

Деплоить мы будем через сервис Timeweb Cloud. Вкратце — это российская облачная платформа для бизнеса, стартапов и разработчиков. Она предоставляет комплекс инструментов для создания и масштабирования IT-инфраструктуры: от тестовых сред до высоконагруженных проектов. 

Пошаговая инструкция по созданию сервера:

1. Во-первых вам нужно пройти регистрацию на сервисе Timeweb.

2. Далее заходите во вкладку "облачные серверы". Здесь у нас есть большой спектр различные ОС. Мы выбираем Ubuntu 24.04.

3. Далее выбираем любой зарубежный регион, либо же российские сервер.

Зачем нам нужен зарубежный регион? Могут задаться вопросом некоторые читатели. Если ваш бот использует внешние API, например Groq, ChatGPT, которые заблокирован в России, то всегда выбирайте сервер за пределами России. Если ваш бот не использует API никаких ИИ и работает по скрипту, берите российский регион.

Все возможные сервера в Timeweb

Все возможные сервера в Timeweb

4. Далее у нас идёт конфигурация. Это очень важный, но простой раздел. Поскольку у вас пока только один бот, смело выбирайте минимальную конфигурацию — ваш бот не потребляет много трафика и будет использовать примерно ~6–10% ресурсов процессора. Это удобно и экономно, особенно на старте.

Сервер у меня на Нидерландах

Сервер у меня на Нидерландах

5.  Далее у нас идет сеть здесь мы все сохраняем и переходим к следующему пункту:

6. Далее у нас идёт блок про бекапы.

Бекапы — это резервные копии вашего проекта. Они нужны для того, чтобы не потерять данные и код, если что-то пойдёт не так:

  • сервер сломался или завис

  • база данных SQLite испортилась

  • случайно удалили файлы или внесли ошибку в код

📌 С бекапами вы всегда можете восстановить рабочую версию и продолжить работу без потерь.

Проще говоря: бекапы — это страховка вашего проекта, которая спасает время и нервы. Здесь выбирайте нас свое усмотрение (советую выбрать).

Наши любые бэкапы

Наши любимые бэкапы

7. Потом мы всё оставляем и переходим к оплате. Не советую вам сразу оплачивать на месяц, возьмите сначала на сутки, потом у вас все равно будет возможность продлить.

После оплаты у нас должен загрузиться наш сервис примерно (30–60 секунд). 

Инструкция по хостингу самого бота

1. Подключение к серверу

Заходите на ваш сервис, копируйте ваш пароль (он будет справа) и заходите в консоль вашего сервера:

  1. Enter

  2. Вводите логин root

  3. Через Ctrl + Shift + V вставляйте ваш root-пароль

  4. Далее вы увидите приветственное сообщение

2. Установка зависимостей

Теперь нам требуется установить системные зависимости и рантаймы:

sudo apt update 
sudo apt upgrade
sudo apt install python3 python3-pip -y
sudo apt install nodejs npm -y
npm install pm2 -g   

📌 Важно:

  • если появляется (Y/N) → всегда нажимайте Y

  • если консоль зависла → введите clear

3. Перенос проекта на сервер

Далее нам нужно перенести нашу папку с файлами на сервак. Есть два варианта, как можно сделать: через GitHub либо же через FileZilla, сделаем мы это через второй вариант.

Установить FileZilla можно по ссылке: https://filezilla-project.org/

4. Подключение

После того как мы установили и зашли, нам нужно внести наши данные:

  1. хост (IPv4)

  2. имя пользователя – root

  3. пароль – root-пароль

  4. порт – 22

Пароль и хост можно взять в дашборде на Timeweb.

5. Перенос файлов

После того как мы внесли наши данные, перенесите папку с проектом в FileZill'y. 

Здесь generator – мой проект.

6. Переход в папку проекта

Далее переходим в консоль Timeweb и переходим в нашу папку, выполняя команду:

cd /root/название_папки 

Чтобы проверить, какие файлы у нас есть в папке, введите команду:

ls 

7. Виртуальное окружение

Далее устанавливаем виртуальное окружение командами:

apt install python3-venv -y
cd ~/название_папки
python3 -m venv venv
source venv/bin/activate 

Скачивайте строго по одному.

8. Установка зависимостей

И под конец устанавливаем зависимости, ваши зависимости записаны в requirements:

pip install aiogram python-dotenv httpx

Возможные другие зависимости. НО в большинстве случаев они такие.

9. Запуск бота

Запускаем файл:

pm2 start main.py 

Дополнительные полезные команды:

1. Чтобы посмотреть версию python, выполните команду:

python --version 

2. Чтобы посмотреть логи вашего проекта, введите команду:

pm2 logs

3. Чтобы перезапустить проект, выполните команду:

pm2 restart main.py                  Объяснить с

 Где, main.py – ваш главный файл для запуска.

Что делать, если мне нужно поменять механику в моем файле?

Иногда вам нужно изменить логику бота: добавить функцию, исправить баг, выпустить апргейд или улучшить поведение.

Разберём, как это сделать правильно.

Инструкция 

1. Подключение к серверу

Переходим в FileZilla и подключаемся к нашему серверу, как мы это делали в пункте 4 (Подключение). Теперь нам уже не нужно переносить файлы, они уже там. 

2. Открытие файла

Как только вошли, нажимаем дважды на нашу папку и потом правой кнопкой мыши на сам файл, который мы хотим подредактировать. У вас должно получится вот так:

3. Редактирование

Нажимаем на «Просмотр/Правка» и далее выбираем наш IDE.

4. Сохранение изменений

После того как что-то поправили, мы сохраняем изменения Ctrl + S и переходим в FileZilla, нам высветится сообщение об изменении → Нажимаем «Да».

5. Перезапуск бота

Переходим в консоль Timeweb и перезапускаем бота командой:

pm2 restart main.py  

Готово! 

Чек-лист

  1. Внёс изменения

  2. Сохранил файл

  3. Перезапустил бота

  4. Проверил результат

Если вы не перезапустили бота, ничего не сохранится! 

Итог

Мы прошли полный цикл. Создали бота через BotFather, навайбкодили его логику через Claude с подключением к OpenRouter, задеплоили на сервер в Timeweb Cloud.

Что важно вынести из этого всего.

Вайбкодинг — не магия. Это просто другой способ работать. Вы не пишете код руками строка за строкой, а управляете моделью через диалог: ставите задачу, уточняете, правите. Главное — понимать, что вы хотите получить, и уметь проверять результат. Если этого нет, никакой ИИ не спасёт.

Итерации важнее идеального промпта с первого раза. Спросили, посмотрели, уточнили, поправили. Диалог, а не монолог.

Бот, которого мы собрали — база. Дальше его можно развивать: добавить кнопки, сохранение истории диалогов в базу данных, поддержку голосовых сообщений, картинок, генерацию через другие модели. Всё это делается через те же итерации с моделью.

Если на каком-то этапе было непонятно или что-то пошло не так — перечитывайте логи, уточняйте промпты, пробуйте снова

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

100%Да1

0%Нет0

Проголосовал 1 пользователь. Воздержавшихся нет.