AI-as-a-Service White-Label Platform Development

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI-as-a-Service White-Label Platform Development
Complex
from 2 weeks to 3 months
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Development of an AI-as-a-Service platform (White-Label)

The white-label AI platform allows resellers and partners to provide AI services under their own brand. Partners receive a fully functional platform with a customized UI, pricing, and domain name, without disclosing the end technology provider.

Architecture of a multi-tenant white-label platform

┌─────────────────────────────────────────────────────────┐
│              Partner A                Partner B          │
│    ai.company-a.com              ai.company-b.com        │
│    [Brand A UI]                  [Brand B UI]            │
└─────────────────┬────────────────────────┬──────────────┘
                  ↓                        ↓
┌─────────────────────────────────────────────────────────┐
│                White-Label Gateway                        │
│  [Tenant Resolution] → [Brand Config] → [API Proxy]     │
└─────────────────────────────────────────────────────────┘
                  ↓
┌─────────────────────────────────────────────────────────┐
│                Core AI Platform                           │
│  [Model Inference] [Billing] [Analytics] [Management]   │
└─────────────────────────────────────────────────────────┘

Tenant Management

from dataclasses import dataclass

@dataclass
class WhiteLabelTenant:
    tenant_id: str
    partner_id: str
    # Брендинг
    brand_name: str
    logo_url: str
    primary_color: str
    custom_domain: str
    # Функциональность
    enabled_models: list[str]
    custom_model_names: dict  # Переименование моделей для партнёра
    # Ценообразование
    markup_percent: float  # Наценка партнёра
    custom_pricing: dict   # Кастомные цены (перекрывают markup)
    # Контракт
    revenue_share_percent: float  # % от выручки партнёра, идущий к нам
    min_monthly_revenue: float

class TenantResolver:
    async def resolve(self, request: Request) -> WhiteLabelTenant:
        # Определение тенанта по домену
        host = request.headers.get('host', '')

        # Поиск по custom domain
        tenant = await self.db.get_by_domain(host)
        if tenant:
            return tenant

        # Fallback: по API ключу
        api_key = request.headers.get('X-API-Key')
        if api_key:
            return await self.db.get_by_api_key_prefix(api_key)

        raise TenantNotFoundError(f"Unknown domain: {host}")

White-Label API Gateway

@app.middleware("http")
async def white_label_middleware(request: Request, call_next):
    tenant = await tenant_resolver.resolve(request)

    # Подмена brand-specific конфигурации
    request.state.tenant = tenant
    request.state.brand_config = await brand_config_store.get(tenant.tenant_id)

    response = await call_next(request)

    # Удаление внутренних заголовков
    response.headers.pop("X-Powered-By", None)
    response.headers.pop("X-Internal-Model-Id", None)

    return response

@app.post("/v1/chat/completions")
async def chat_completions(request: ChatRequest, req: Request):
    tenant = req.state.tenant

    # Маппинг model names: "gpt-4" (клиент) → "actual-model-id" (внутренний)
    internal_model = tenant.custom_model_names.get(
        request.model,
        request.model
    )

    # Проверка доступности модели для этого тенанта
    if internal_model not in tenant.enabled_models:
        raise HTTPException(404, f"Model '{request.model}' not available")

    # Кастомное ценообразование
    pricing = tenant.custom_pricing.get(internal_model) or \
              base_pricing.get(internal_model) * (1 + tenant.markup_percent / 100)

    result = await inference_service.run(internal_model, request)
    await billing.charge(tenant, result.usage, pricing)

    return result

UI customization

Partners manage branding through the admin panel:

@dataclass
class BrandConfig:
    logo_url: str
    favicon_url: str
    primary_color: str  # "#0066cc"
    secondary_color: str
    font_family: str
    custom_css: str  # Дополнительный CSS для тонкой настройки
    support_email: str
    privacy_policy_url: str
    terms_url: str
    # Белый список разрешённых функций
    show_model_selection: bool = True
    show_usage_analytics: bool = True
    show_api_docs: bool = True
    custom_nav_items: list[dict] = None  # Дополнительные пункты меню

Development time: 4-6 months for a full white-label platform with multi-tenancy, billing, analytics, and an admin portal for partners.