В этой статье - готовый рецепт. Открываете её, заводите Сбер ID, копируете код, разворачиваете на VPS, через 2 часа в вашем Telegram-боте отвечает FAQ-агент на базе GigaChat. На реальной FAQ-базе вашей компании. Без агентств, без подрядчиков, без месяцев интеграции.

Это не "продакшен на тысячу пользователей". Это рабочий минимум, который снимает с менеджеров 50-70% типовых вопросов клиентов. Когда он окупится, можно нанимать команду на масштабирование. До этого - не тратьте деньги.

Что получится в конце:

  • Telegram-бот, который отвечает на типовые вопросы клиентов
  • Знаниевая база из ваших регламентов / условий / FAQ
  • Эскалация менеджеру когда AI не уверен
  • Стоимость работы: 1000-3000 ₽/мес инфраструктура + токены GigaChat

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

  • Любой VPS на Ubuntu (от 600 ₽/мес у Beget, Selectel, Timeweb)
  • Python 3.10+
  • Telegram-аккаунт для создания бота через @BotFather
  • Юрлицо или ИП для подключения GigaChat (на физ-лицо тоже можно, но ограничения)
  • 1-2 файла с вашими FAQ (текстовые или Markdown - в любом виде)

Время: 2-3 часа от нуля. Если опыта Python нет вообще - 4-6 часов с гуглением.

Шаг 1: Регистрация в GigaChat (30 минут)

  1. Откройте https://developers.sber.ru/portal/products/gigachat-api
  2. Войдите через Сбер ID (или зарегистрируйтесь)
  3. Подтвердите ИП / ООО (паспорт + ИНН + бумаги)
  4. После подтверждения подключите тариф - на старте достаточно бесплатного "Freemium" (1 млн токенов/мес)
  5. Перейдите в кабинет → API доступ → создайте credentials (Client ID + Authorization Key)
  6. Скачайте Authorization Key как Base64 (он понадобится для запросов)

Тонкость. Между подачей документов и активацией - 1-3 рабочих дня. Заявку подайте сегодня, остальные шаги можете делать параллельно.

Шаг 2: Telegram-бот через @BotFather (5 минут)

  1. Откройте Telegram, напишите боту @BotFather: /newbot
  2. Имя бота: например, "FAQ Noltis Bot"
  3. Username: например, noltis_faq_bot (должен заканчиваться на _bot)
  4. Получите токен вида 7901931833:AAEQAAF3Qz_Xgf8invNBHoG9LSVQUqjQ0cU - запишите
  5. Опционально: /setdescription - описание бота, /setuserpic - аватарка

Бот пока ничего не делает, нужен Python-код ниже.

Шаг 3: VPS и развёртывание

Возьмите VPS 2 ГБ RAM / 1 vCPU. Установите Ubuntu 22.04. По SSH:


apt update && apt upgrade -y
apt install -y python3-pip python3-venv git
mkdir -p /opt/faq-bot && cd /opt/faq-bot
python3 -m venv .venv
source .venv/bin/activate
pip install aiogram requests python-dotenv tenacity

Шаг 4: Загрузка вашей FAQ-базы

Создайте файл /opt/faq-bot/faq.md с вашими реальными вопросами и ответами. Пример формата:


## Где находится ваш офис?
Москва, ул. Тверская 1, офис 200. Работаем пн-пт с 10:00 до 19:00.

## Сколько стоит разработка чат-бота?
От 80 000 рублей под ключ. Зависит от сложности сценариев и интеграций.
Точную цену считаем после брифа, обычно в течение 24 часов.

## Делаете ли вы голосовых ИИ-агентов?
Да, делаем. Цены от 150 000 рублей, срок 3-5 недель.
Подробнее: https://noltis.ru/product/voice-ai/

## Работаете с физлицами?
Преимущественно с ИП и ООО. С физлицами - только разовые проекты от 30 000 ₽.

20-50 вопросов с ответами на старте - достаточно. Расширите по мере появления нестандартных вопросов от клиентов.

Шаг 5: Код бота

Создайте /opt/faq-bot/.env:


TG_TOKEN=ваш_токен_телеграм_бота
GIGACHAT_AUTH_KEY=ваш_Authorization_Key_в_Base64
GIGACHAT_SCOPE=GIGACHAT_API_PERS
ESCALATION_CHAT_ID=ваш_телеграм_chat_id_для_эскалации

ESCALATION_CHAT_ID найдёте, написав @userinfobot в Telegram - он покажет ваш ID.

Создайте /opt/faq-bot/bot.py:


import asyncio, os, uuid, requests, time
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from dotenv import load_dotenv
from tenacity import retry, stop_after_attempt, wait_exponential

load_dotenv()
TG_TOKEN = os.getenv("TG_TOKEN")
GIGACHAT_AUTH_KEY = os.getenv("GIGACHAT_AUTH_KEY")
GIGACHAT_SCOPE = os.getenv("GIGACHAT_SCOPE", "GIGACHAT_API_PERS")
ESCALATION_CHAT_ID = int(os.getenv("ESCALATION_CHAT_ID", "0"))

with open("/opt/faq-bot/faq.md", encoding="utf-8") as f:
    FAQ_BASE = f.read()

_token_cache = {"token": None, "exp": 0}

@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=1, max=8))
def get_access_token():
    if _token_cache["token"] and _token_cache["exp"] > time.time() + 60:
        return _token_cache["token"]
    rid = str(uuid.uuid4())
    resp = requests.post(
        "https://ngw.devices.sberbank.ru:9443/api/v2/oauth",
        headers={
            "RqUID": rid,
            "Authorization": f"Basic {GIGACHAT_AUTH_KEY}",
            "Content-Type": "application/x-www-form-urlencoded",
        },
        data={"scope": GIGACHAT_SCOPE},
        verify=False, timeout=10,
    )
    resp.raise_for_status()
    data = resp.json()
    _token_cache["token"] = data["access_token"]
    _token_cache["exp"] = data["expires_at"] / 1000
    return _token_cache["token"]

@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=1, max=8))
def ask_gigachat(question: str) -> dict:
    token = get_access_token()
    prompt = f"""Ты ассистент компании. Отвечай на вопросы клиентов на основе FAQ-базы ниже.

ПРАВИЛА:
- Если вопрос есть в базе - отвечай по ней, своими словами, естественно
- Если ответа нет в базе - отвечай "{{не знаю}}" (ровно так в фигурных скобках)
- Не выдумывай факты, цены, сроки
- Отвечай 1-3 предложения, дружелюбно но по делу
- Без шаблонов "уважаемый клиент"

FAQ-БАЗА:
{FAQ_BASE}

ВОПРОС: {question}

ОТВЕТ:"""
    resp = requests.post(
        "https://gigachat.devices.sberbank.ru/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
        json={
            "model": "GigaChat",
            "messages": [{"role": "user", "content": prompt}],
            "temperature": 0.3,
            "max_tokens": 250,
        },
        verify=False, timeout=20,
    )
    resp.raise_for_status()
    text = resp.json()["choices"][0]["message"]["content"].strip()
    return {"text": text, "uncertain": "{не знаю}" in text}

bot = Bot(token=TG_TOKEN)
dp = Dispatcher()

@dp.message(Command("start"))
async def cmd_start(m: types.Message):
    await m.answer("Здравствуйте! Я ассистент. Задайте вопрос - постараюсь ответить.")

@dp.message()
async def handle(m: types.Message):
    if not m.text:
        return
    try:
        result = ask_gigachat(m.text)
        if result["uncertain"]:
            await m.answer(
                "Я не уверен в ответе. Передаю вопрос менеджеру - ответит в течение часа в рабочее время."
            )
            if ESCALATION_CHAT_ID:
                await bot.send_message(
                    ESCALATION_CHAT_ID,
                    f"Эскалация:\nКлиент @{m.from_user.username or m.from_user.id}\nВопрос: {m.text}"
                )
        else:
            await m.answer(result["text"])
    except Exception as e:
        await m.answer("Технический сбой, попробуйте через минуту.")
        if ESCALATION_CHAT_ID:
            await bot.send_message(ESCALATION_CHAT_ID, f"ОШИБКА: {e}\nВопрос: {m.text}")

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

if __name__ == "__main__":
    asyncio.run(main())

Шаг 6: Запуск в фоне через systemd

Создайте /etc/systemd/system/faq-bot.service:


[Unit]
Description=FAQ Bot on GigaChat
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/faq-bot
ExecStart=/opt/faq-bot/.venv/bin/python /opt/faq-bot/bot.py
Restart=on-failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

Запустите:


systemctl daemon-reload
systemctl enable faq-bot
systemctl start faq-bot
systemctl status faq-bot

Если в status строка active (running) - бот работает. Пишите ему в Telegram, должен отвечать.

Шаг 7: Проверка и доводка

  1. Откройте Telegram, найдите своего бота, нажмите /start
  2. Задайте 5-10 вопросов из вашей FAQ-базы - должен отвечать правильно
  3. Задайте 5-10 нестандартных вопросов - должен отвечать "не знаю" и эскалировать
  4. Проверьте что эскалация прилетает вам в ESCALATION_CHAT_ID

Если AI отвечает шаблонно или выдумывает факты - попросите чуть жёстче в промпте ("не выдумывай", "только из базы").

Что улучшить когда окупится (продолжения)

Этот гайд - минимальный жизнеспособный продукт. После того как бот покажет ROI (обычно 1-2 месяца), его стоит улучшить:

  • RAG вместо передачи всей базы в каждом запросе. Если ваша FAQ-база разрастётся до 100+ записей, передавать её целиком в каждый запрос дорого. Лучше векторизовать и подмешивать только релевантные. Глубже разбирал в Памяти ИИ-агентов.
  • Память диалога. Сейчас каждый вопрос - новый. Если клиент уточняет ("а как это по объёму?"), бот не помнит контекст. Добавляется через сохранение истории в Redis или БД.
  • Подключение к CRM. Эскалированные вопросы летят в Bitrix24/amoCRM как лиды, а не просто в Telegram руководителю.
  • Аналитика. Какие вопросы задают чаще, какие AI не закрывает - повод обновить FAQ или продукт.
  • Расширение каналов. Тот же логика-бот в WhatsApp, MAX, на сайте в виде чат-виджета.

Близкие материалы: Что у ИИ-агента под капотом - архитектура целиком, Промпт-инжиниринг для бизнеса - шаблоны промптов под разные задачи, Год на GigaChat - опыт длительной эксплуатации, YandexGPT vs GigaChat - выбор LLM.

Если самим лень и нужно под ключ

Если этот сетап страшен (а у вас нет инженера в команде), под ключ:

  • FAQ-бот на GigaChat + Telegram + базовая эскалация: 80 000 - 130 000 ₽
  • + RAG, память диалога, аналитика: 150 000 - 250 000 ₽
  • + интеграция с CRM, WhatsApp, чат на сайте: 250 000 - 450 000 ₽
  • Поддержка: 8 000 - 20 000 ₽/мес

Опишите ваши задачи и FAQ в брифе - подберу под вас оптимальный стек. Часто оказывается, что хватает базового бота за 100 тыс. ₽, и через 2-3 месяца станет очевидно, нужны ли расширения.

Есть процесс, который пора отдать машине?

Опишите задачу в брифе - верну оценку с ценой и сроками за 24 часа. Бесплатно, до подписания.

Оставить заявку