📖 Туториал26 мин15 февраля 2026 г.

Как создать AI-чатбота для своего бизнеса

Пошаговое руководство по созданию AI-чатбота: Telegram-бот на Python, веб-чатбот, RAG по базе знаний. Код, стоимость, масштабирование.

AI-чатбот — это не просто модный тренд. Грамотно настроенный бот экономит бизнесу 40–60% расходов на первую линию поддержки, работает 24/7 и отвечает за секунды. В этом туториале мы создадим бота с нуля — от регистрации токена до RAG по вашей базе знаний.

Три подхода к AI-чатботам

ПодходСложностьСтоимостьГибкостьДля кого
No-code платформы (Crisp, Tidio)Низкая$30–100/месОграниченнаяМалый бизнес
Telegram-бот (Python + OpenAI API)Средняя$5–50/месВысокаяСредний бизнес, стартапы
Кастомный бот с RAGВысокая$20–200/месМаксимальнаяСредний и крупный бизнес

Вариант 1: Telegram-бот с AI (Python + aiogram + OpenAI)

Шаг 1: Подготовка

# Создаём проект
mkdir ai-telegram-bot && cd ai-telegram-bot
python -m venv venv
source venv/bin/activate   # Linux/Mac
# venv\Scripts\activate   # Windows

# Зависимости
pip install aiogram openai python-dotenv

Создайте файл .env:

TELEGRAM_TOKEN=ваш_токен_от_BotFather
OPENAI_API_KEY=sk-ваш_ключ_openai

Шаг 2: Базовый бот

import asyncio
import os
from dotenv import load_dotenv
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from openai import AsyncOpenAI

load_dotenv()

bot = Bot(token=os.getenv("TELEGRAM_TOKEN"))
dp = Dispatcher()
client = AsyncOpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# Хранилище истории диалогов (в памяти)
conversations: dict[int, list] = {}

SYSTEM_PROMPT = """Ты — AI-ассистент компании "ТехноМир".
Ты помогаешь клиентам с вопросами о товарах, доставке и возвратах.
Отвечай кратко, вежливо и по делу. Если не знаешь ответа — предложи
связаться с оператором по телефону 8-800-123-45-67."""

@dp.message(CommandStart())
async def start(message: types.Message):
    conversations[message.from_user.id] = []
    await message.answer(
        "Привет! Я AI-ассистент ТехноМир. "
        "Задайте любой вопрос о наших товарах и услугах."
    )

@dp.message()
async def handle_message(message: types.Message):
    user_id = message.from_user.id

    if user_id not in conversations:
        conversations[user_id] = []

    # Добавляем сообщение пользователя
    conversations[user_id].append({
        "role": "user",
        "content": message.text
    })

    # Ограничиваем историю (последние 20 сообщений)
    history = conversations[user_id][-20:]

    # Запрос к OpenAI
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            *history
        ],
        max_tokens=1000,
        temperature=0.7,
    )

    answer = response.choices[0].message.content

    # Сохраняем ответ в историю
    conversations[user_id].append({
        "role": "assistant",
        "content": answer
    })

    await message.answer(answer)

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

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

Шаг 3: Запуск

python bot.py

Откройте Telegram, найдите вашего бота и напишите ему. Он уже отвечает с помощью AI!

Вариант 2: Веб-чатбот (No-code)

Если вам не нужен Telegram, а нужен виджет на сайт — используйте платформы с встроенным AI:

Crisp

  • Стоимость: от $25/мес (Essentials) до $95/мес (Unlimited)
  • AI-бот: загрузите FAQ и документацию, бот обучится автоматически
  • Поддерживает русский язык
  • Интеграция: сайт, Telegram, WhatsApp, Instagram

Tidio

  • Стоимость: бесплатно (до 100 диалогов/мес), от $29/мес (Communicator)
  • AI-бот Lyro: обучается на вашем контенте за 5 минут
  • Drag-and-drop конструктор сценариев
  • Аналитика и A/B-тестирование

Настройка Crisp (5 минут)

  1. Зарегистрируйтесь на crisp.chat
  2. Добавьте сайт в панели управления
  3. Вставьте JavaScript-код виджета на ваш сайт
  4. Перейдите в Plugins → AI Copilot
  5. Загрузите ваши FAQ, документацию, страницы сайта
  6. Активируйте автоматические ответы

Вариант 3: RAG-бот — ответы из вашей базы знаний

Самый мощный подход: бот находит релевантную информацию в ваших документах и формирует ответ на её основе. Не выдумывает — цитирует.

Архитектура

Документы → Разбиение на чанки → Эмбеддинги → Векторная БД
                                                    ↓
Вопрос пользователя → Поиск похожих чанков → LLM → Ответ

Реализация на LlamaIndex + Telegram

import asyncio
import os
from dotenv import load_dotenv
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding

load_dotenv()

# Настройка LLM
Settings.llm = OpenAI(model="gpt-4o-mini", temperature=0.3)
Settings.embed_model = OpenAIEmbedding(model="text-embedding-3-small")

# Загрузка и индексация документов
print("Загрузка документов...")
documents = SimpleDirectoryReader("./knowledge_base").load_data()
index = VectorStoreIndex.from_documents(documents, show_progress=True)
query_engine = index.as_query_engine(
    similarity_top_k=3,
    response_mode="compact",
)
print(f"Индексировано {len(documents)} документов")

# Telegram-бот
bot = Bot(token=os.getenv("TELEGRAM_TOKEN"))
dp = Dispatcher()

@dp.message(CommandStart())
async def start(message: types.Message):
    await message.answer(
        "Привет! Я AI-ассистент. Задайте вопрос по нашей "
        "документации, и я найду ответ."
    )

@dp.message()
async def handle_message(message: types.Message):
    await message.answer("Ищу ответ в базе знаний...")

    response = await asyncio.to_thread(
        query_engine.query, message.text
    )

    sources = set()
    for node in response.source_nodes:
        if "file_name" in node.metadata:
            sources.add(node.metadata["file_name"])

    answer = str(response)
    if sources:
        answer += f"\n\n📄 Источники: {', '.join(sources)}"

    await message.answer(answer)

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

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

Положите ваши документы (PDF, DOCX, TXT, MD) в папку knowledge_base/ и запустите бота.

Стоимость и масштабирование

Расчёт стоимости API

МетрикаЗначение
Средний запрос (input)~500 токенов (промпт + контекст RAG)
Средний ответ (output)~200 токенов
Стоимость GPT-4o-mini (input)$0.15 / 1M токенов
Стоимость GPT-4o-mini (output)$0.60 / 1M токенов
Стоимость 1 диалога~$0.0002 (~0.02 ₽)
1 000 диалогов/день~$0.20/день (~$6/мес, ~550 ₽)
10 000 диалогов/день~$2.00/день (~$60/мес, ~5 500 ₽)

Для GPT-4o (не mini) стоимость выше примерно в 15 раз, но качество ответов лучше для сложных вопросов.

Снижение стоимости

  • Кэширование ответов — одинаковые вопросы (FAQ) не отправлять в API повторно
  • Использование GPT-4o-mini — в 15 раз дешевле GPT-4o при хорошем качестве
  • Локальная модель — замените OpenAI на Ollama + Llama 3.2, стоимость API = $0
  • Ограничение контекста — передавайте только 3–5 релевантных чанков, не всю историю

Масштабирование

  • До 100 пользователей/день: один сервер, SQLite для хранения
  • 100–1 000: PostgreSQL, Redis для кэширования, очередь задач (Celery)
  • 1 000+: микросервисы, горизонтальное масштабирование, мониторинг (Grafana)

Частые ошибки

  • Слишком общий промпт — бот отвечает на любые вопросы, включая нерелевантные. Ограничьте тематику в system prompt.
  • Нет fallback на оператора — если бот не уверен в ответе, он должен предложить связь с человеком.
  • Игнорирование аналитики — логируйте вопросы, на которые бот не смог ответить. Это ваша точка роста.
  • Слишком длинный контекст — передавать всю историю из 50 сообщений дорого и бесполезно. Ограничьте 10–20 последними.

FAQ

Сколько стоит создание AI-чатбота?

DIY (самому): $0–50 на API за первый месяц + время на разработку. На заказ у фрилансера: 50 000–150 000 ₽. У агентства: 200 000–1 000 000 ₽.

Какую модель выбрать для бота?

GPT-4o-mini для большинства задач (дешёвый, быстрый, достаточно умный). GPT-4o для сложных вопросов. Claude Sonnet — если важна точность следования инструкциям.

Можно ли обойтись без программирования?

Да. Crisp, Tidio, Chatfuel, ManyChat имеют встроенный AI. Просто загрузите ваш контент и включите бота. Но гибкость будет ограничена.

Понравилась статья?

Поделитесь с коллегами и друзьями

Читайте также

Хотите больше таких статей?

Подпишитесь на еженедельный дайджест — новые инструменты, промпты и гиды каждую неделю

Подписаться бесплатно
ещё 3
Сравнить (0)