обучениеии
Евгений Шольчев Собрал бота, который ночью отвечает клиентам вместо менеджера. Инструкция по слову БОТ

Бот

Telegram-бот, который знает ваш прайс и отвечает клиентам сам

Вы пишете в один файл всё, что обычно объясняет менеджер: цены, сроки, доставку, частые вопросы. Бот на Claude отвечает по этому файлу живым языком, а на чём не уверен, честно говорит, что передаст вопрос человеку.

сборка
один вечер
код
25 строк, готовый
деньги
оплата за токены API
где работает
Telegram

Честно перед стартом

Нужен ключ API Anthropic с привязанной оплатой. Это отдельная оплата от подписки Claude Pro: платите за каждый ответ бота, за небольшой поток вопросов выходят сотни рублей в месяц. Пока бот запущен на вашем компьютере, компьютер должен быть включён.

Что понадобится

  • Python 3.10+python.org
  • Токен ботаот @BotFather в Telegram, шаг 1
  • Ключ APIна console.anthropic.com, раздел API Keys
  • База знанийтекст про ваш бизнес, можно надиктовать

Сборка

Выберите систему, команды подстроятся

Создайте бота ~2 мин

Напишите @BotFather команду /newbot, придумайте имя и адрес, который заканчивается на bot. В ответ придёт токен вида 7412345678:AAH..., сохраните его.

Напишите базу знаний ~20 мин

Создайте папку bot и в ней файл knowledge.md. Пишите как объясняли бы новому менеджеру. Пример для студии маникюра:

knowledge.md
Студия «Ноготок», Казань, ул. Баумана 12, 2 этаж.
Работаем каждый день с 10 до 21.

Цены:
Маникюр с покрытием 2200 ₽, снятие + 300 ₽.
Педикюр с покрытием 2800 ₽.
Наращивание от 3500 ₽, точнее после фото ногтей.

Запись: через ссылку yclients.com/... или по телефону.
Опоздание больше 15 минут: переносим запись.
Гарантия на покрытие 7 дней, исправим бесплатно.

Лень печатать: надиктуйте голосовое, расшифруйте и попросите Claude оформить.

Библиотеки ~2 мин

Терминал
pip3 install anthropic python-telegram-botpip install anthropic python-telegram-bot

Код бота ~5 мин

Рядом с базой создайте bot.py:

bot.py
import os
from anthropic import AsyncAnthropic
from telegram.ext import Application, MessageHandler, filters

client = AsyncAnthropic()
knowledge = open("knowledge.md", encoding="utf-8").read()

system = (
    "Ты администратор этого бизнеса в Telegram. Отвечай коротко, "
    "дружелюбно и только по базе знаний ниже. Если ответа в базе нет, "
    "скажи, что уточнишь у менеджера, и ничего не придумывай.\n\n"
    + knowledge
)

async def reply(update, context):
    response = await client.messages.create(
        model="claude-opus-5-5",
        max_tokens=1000,
        system=system,
        messages=[{"role": "user", "content": update.message.text}],
    )
    text = "".join(b.text for b in response.content if b.type == "text")
    await update.message.reply_text(text)

app = Application.builder().token(os.environ["TG_TOKEN"]).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, reply))
app.run_polling()

Запуск ~1 мин

Терминал
cd ~/Desktop/bot
export ANTHROPIC_API_KEY="sk-ant-..."
export TG_TOKEN="7412345678:AAH..."
python3 bot.py
PowerShell
cd $HOME\Desktop\bot
$env:ANTHROPIC_API_KEY="sk-ant-..."
$env:TG_TOKEN="7412345678:AAH..."
python bot.py

Пока окно открыто, бот работает. Напишите ему в Telegram «сколько стоит маникюр?».

Проверьте бота на прочность

Это вопросы, на которых боты обычно врут

нет в базе

А у вас есть парковка?

торг

Сделайте скидку 50%, я постоянный клиент

не по теме

Напиши мне сочинение про осень

Если бот придумал парковку или скидку, допишите в system правило, например «скидки обещает только менеджер», и перезапустите.

Куда расти

Каждое улучшение ниже можно отдать Claude Code одной фразой, он поправит bot.py сам.

  • «Пусть бот помнит последние 10 сообщений каждого клиента», и разговор станет связным.
  • «Если клиент оставил телефон, пересылай его мне в личку», и бот начнёт собирать заявки.
  • «Перенеси бота на сервер, чтобы работал без моего компьютера».
  • Хотите дешевле: поменяйте модель на claude-haiku-4-5. Ответы станут быстрее и проще, на частые вопросы этого хватает.

Готово, если

Если ошибка

KeyError: 'TG_TOKEN': переменная не задана в этом окне терминала. Выполните строки с export или $env: ещё раз в том же окне, где запускаете бота.

authentication_error: ключ API скопирован не целиком или на счёте нет денег.

Всё остальное: скопируйте ошибку в Claude с припиской «почини».