Разработка White-Label AI-чат-бота для реселлеров
White-label AI-чат-бот — это платформа, которую реселлер покупает один раз и продаёт своим клиентам под собственным брендом. Каждый конечный клиент получает изолированный инстанс с собственными данными, собственным брендингом и собственными интеграциями. Ключевые требования к такой архитектуре: мультитенантность с полной изоляцией данных, гибкий брендинг без редеплоя, простой onboarding для клиентов реселлера без технической компетенции.
Архитектура мультитенантной платформы
Каждый тенант (клиент реселлера) получает:
- Изолированное векторное хранилище для своей базы знаний
- Собственный набор системных промптов и тональности
- Отдельные API-ключи к LLM (или billing через платформу)
- Индивидуальные интеграции (свой Telegram-бот, свой виджет)
# Tenant-aware request routing
class TenantRouter:
def __init__(self, tenant_config_store):
self.configs = tenant_config_store
def get_agent(self, tenant_id: str) -> ChatAgent:
config = self.configs.get(tenant_id)
return ChatAgent(
llm_config=config.llm_settings,
vector_store=VectorStore(namespace=f"tenant_{tenant_id}"),
system_prompt=config.custom_system_prompt,
tools=config.enabled_tools,
branding=config.branding
)
Для изоляции данных в векторном хранилище: Qdrant поддерживает namespaces из коробки, Pinecone — через отдельные индексы, Weaviate — через tenant isolation API (начиная с версии 1.20).
Модуль настройки брендинга
Реселлер и его клиенты управляют брендингом через admin-панель без кода:
- Загрузка логотипа, выбор цветовой схемы (primary/secondary colors, шрифты)
- Имя бота, приветственное сообщение, аватар
- Тональность: формальная / нейтральная / дружелюбная
- Набор быстрых ответов (suggested replies)
Виджет рендерится с runtime-инъекцией CSS-переменных — один бандл для всех тенантов.
Onboarding клиента реселлера
Целевой сценарий: клиент реселлера (например, небольшой интернет-магазин) должен подключить чат-бота за 15 минут без разработчика. Процесс:
- Регистрация через форму реселлера
- Загрузка базы знаний: PDF-файлы, URL сайта (crawler), FAQ в виде CSV
- Автоматическое создание векторного индекса (chunking → embeddings → upsert)
- Настройка виджета через drag-and-drop редактор
- Копирование embed-кода на сайт
Среднее время полного onboarding: 12–20 минут для базовой конфигурации.
Монетизация и тарификация
Реселлер видит в своей панели: количество токенов / запросов по каждому тенанту, биллинг агрегацию, возможность устанавливать markup сверх себестоимости.
| Модель монетизации | Описание |
|---|---|
| Per-message | Фиксированная цена за сообщение |
| Per-token | Пробрасывание стоимости токенов + markup |
| Subscription + overage | Лимит в тарифе + доплата за превышение |
| Flat fee per tenant | Фиксированная ежемесячная плата за тенант |
Аналитика и мониторинг
Реселлер видит агрегированную статистику, каждый тенант — свою:
- Количество диалогов, среднее количество сообщений на сессию
- Containment rate, topN неотвеченных вопросов
- CSAT по сессиям
- Использование токенов / cost
Технологический стек
Frontend виджет: React + iframe embed или Web Component для изоляции стилей. Admin панель: React SPA. Backend: FastAPI или Node.js. LLM: OpenAI GPT-4o / Anthropic Claude / self-hosted Llama через vLLM. Векторное хранилище: Qdrant (self-hosted) или Pinecone (managed). БД тенантов: PostgreSQL с row-level security.
| Конфигурация | Срок разработки |
|---|---|
| MVP: виджет + RAG + базовый admin | 5–7 недель |
| Полная платформа с биллингом и аналитикой | 9–13 недель |
| Enterprise: SSO, on-premise, custom LLM | 14–20 недель |







