Бот
Вы пишете в один файл всё, что обычно объясняет менеджер: цены, сроки, доставку, частые вопросы. Бот на Claude отвечает по этому файлу живым языком, а на чём не уверен, честно говорит, что передаст вопрос человеку.
Нужен ключ API Anthropic с привязанной оплатой. Это отдельная оплата от подписки Claude Pro: платите за каждый ответ бота, за небольшой поток вопросов выходят сотни рублей в месяц. Пока бот запущен на вашем компьютере, компьютер должен быть включён.
Выберите систему, команды подстроятся
Напишите @BotFather команду /newbot, придумайте имя и адрес, который заканчивается на bot. В ответ придёт токен вида 7412345678:AAH..., сохраните его.
Создайте папку bot и в ней файл knowledge.md. Пишите как объясняли бы новому менеджеру. Пример для студии маникюра:
Студия «Ноготок», Казань, ул. Баумана 12, 2 этаж.
Работаем каждый день с 10 до 21.
Цены:
Маникюр с покрытием 2200 ₽, снятие + 300 ₽.
Педикюр с покрытием 2800 ₽.
Наращивание от 3500 ₽, точнее после фото ногтей.
Запись: через ссылку yclients.com/... или по телефону.
Опоздание больше 15 минут: переносим запись.
Гарантия на покрытие 7 дней, исправим бесплатно.Лень печатать: надиктуйте голосовое, расшифруйте и попросите Claude оформить.
pip3 install anthropic python-telegram-botpip install anthropic python-telegram-botРядом с базой создайте 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()cd ~/Desktop/bot
export ANTHROPIC_API_KEY="sk-ant-..."
export TG_TOKEN="7412345678:AAH..."
python3 bot.pycd $HOME\Desktop\bot
$env:ANTHROPIC_API_KEY="sk-ant-..."
$env:TG_TOKEN="7412345678:AAH..."
python bot.pyПока окно открыто, бот работает. Напишите ему в Telegram «сколько стоит маникюр?».
Это вопросы, на которых боты обычно врут
А у вас есть парковка?
Сделайте скидку 50%, я постоянный клиент
Напиши мне сочинение про осень
Если бот придумал парковку или скидку, допишите в system правило, например «скидки обещает только менеджер», и перезапустите.
Каждое улучшение ниже можно отдать Claude Code одной фразой, он поправит bot.py сам.
claude-haiku-4-5. Ответы станут быстрее и проще, на частые вопросы этого хватает.KeyError: 'TG_TOKEN': переменная не задана в этом окне терминала. Выполните строки с export или $env: ещё раз в том же окне, где запускаете бота.
authentication_error: ключ API скопирован не целиком или на счёте нет денег.
Всё остальное: скопируйте ошибку в Claude с припиской «почини».