Розробка White-Label AI-чат-бота для реселлерів
White-label AI-чат-бот — це платформа, яку реселлер купує один раз і продає своїм клієнтам під своїм брендом. Кожен кінцевий клієнт отримує ізольований інстанс зі своїми даними, своїм брендингом та своїми інтеграціями. Ключові вимоги до такої архітектури: мультитенантність із повною ізоляцією даних, гнучкий брендинг без редеплою, простий onboarding для клієнтів реселлера без технічної компетенції.
Архітектура мультитенантної платформи
Кожен тенант (клієнт реселлера) отримує:
- Ізольоване векторне сховище для своєї бази знань
- Власний набір системних промптів та тональності
- Окремі API-ключи до LLM (або біллінг через платформу)
- Індивідуальні інтеграції (свій 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 тижнів |







