Все статьиРазработка

Разработка B2B-портала знаний: архитектура и RBAC

Как разработать корпоративный B2B-портал знаний: архитектура данных, разграничение прав RBAC, RAG-поиск и аналитика. Читайте подробный разбор от EvaLab!

10 мин чтенияОбновлено 28.08.2026
Разработка B2B-портала знаний: архитектура и RBAC — статья блога EvaLab

В современных B2B-компаниях, дистрибьюторских сетях и инжиниринговых предприятиях критически важные знания зачастую распределены по локальным дискам, регламентам в PDF, цепочкам переписки и головам ключевых сотрудников. Отсутствие единого изолированного портала знаний приводит к долгий адаптации новичков, ошибкам менеджеров по продажам при подборе сложных номенклатур и высокой нагрузке на первую линию технической поддержки.

Разработка защищенного B2B-портала знаний (Corporate Knowledge Base & Partner Hub) позволяет централизовать документацию, технические регламенты, обучающие материалы и инструкции для сотрудников, дилеров и клиентов. В этой статье мы рассмотрим архитектуру такого портала, механизмы управления доступом (RBAC), гибридный умный поиск RAG и аналитику использования.


Архитектура современного корпоративного B2B-портала

Современный база знаний — это не просто статическая Википедия, а микросервисная или модульная платформа с высокой степенью интеграции и гибкими ролевыми моделями.

┌─────────────────────────────────────────────────────────────────────────┐
│                      Пользовательский интерфейс                         │
│         (Next.js / React Web App + Mobile Web / Telegram WebApp)        │
└─────────────────────────────────┬───────────────────────────────────────┘
                                  │ HTTPS / REST / gRPC
┌─────────────────────────────────▼───────────────────────────────────────┐
│                    API Gateway & Authorization Server                   │
│           (Keycloak / OIDC / OAuth2 + RBAC Middleware)                  │
└──────────────┬──────────────────┬──────────────────┬────────────────────┘
               │                  │                  │
┌──────────────▼──────┐    ┌──────▼─────────────┐   ┌▼────────────────────┐
│ Content Management  │    │ Search & RAG Engine│   │ Telemetry & Analytics│
│   (Node.js / Go)    │    │(Elastic/Vector DB)│   │(Matomo / ClickHouse)│
└──────────────┬──────┘    └──────┬─────────────┘   └─────────────────────┘
               │                  │
┌──────────────▼──────────────────▼───────────────────────────────────────┐
│                    Хранилище данных & Интеграции                        │
│     (PostgreSQL + MinIO S3 + 1C:Enterprise / ERP / Confluence Sync)     │
└─────────────────────────────────────────────────────────────────────────┘

Ключевые слои системы:

  1. Frontend (Next.js App Router): Обеспечивает мгновенный рендеринг (SSR/SSG), безопасную работу с клиентскими токенами и высокую скорость поиска.
  2. Identity & Access Management (IAM / Keycloak): Служба аутентификации с поддержкой SSO (Single Sign-On), Active Directory / LDAP и двухфакторной аутентификации (2FA).
  3. Search & RAG Core: Поисковый модуль, комбинирующий полнотекстовый поиск (Elasticsearch / Meilisearch) и векторный эмбеддинг-поиск (pgvector / Qdrant) для понимания смыслового контекста запросов.

Модель разграничения доступов RBAC (Role-Based Access Control)

В B2B-портале содержится информация разной степени конфиденциальности: от публичных инструкций до закрытых дилерских прайс-листов и патентных спецификаций. Для управления доступом применяется матрица RBAC с поддержкой атрибутивного доступа (ABAC).

Матрица прав доступа:

Роль пользователяПубличные инструкцииТехнические регламентыДилерские цены и скидкиИсходный код и чертежиУправление контентом
Публичный гостьReadNo AccessNo AccessNo AccessNo Access
Клиент / ЗаказчикReadReadNo AccessNo AccessNo Access
Сертифицированный дилерReadReadRead (Своя колонка)No AccessNo Access
Инженер / Сервис-инженерReadReadReadRead (Свой проект)No Access
Контент-менеджерReadReadReadReadCreate / Edit
СуперадминистраторFull AccessFull AccessFull AccessFull AccessFull Access

Пример описания ролей в базе данных (JSON Schema)

{
  "user_id": "usr_998124",
  "domain": "partner.company.com",
  "roles": ["dealer_vip", "technical_specialist"],
  "attributes": {
    "region": "RU-SPE",
    "contract_level": "gold",
    "allowed_categories": [
      "cat_pumps_industrial",
      "cat_spares_heavy",
      "cat_docs_confidential"
    ]
  },
  "permissions": [
    "knowledge:read_confidential_pdf",
    "pricing:view_gold_tier"
  ]
}

Использование AI и RAG-поиска (Retrieval-Augmented Generation)

Обычный поиск по ключевым словам часто подводит, когда сотрудник не знает точно номенклатурное название детали или код ошибки. Внедрение RAG-архитектуры позволяет задавать вопросы естественным языком.

Как работает RAG в B2B-базе знаний:

  1. Индексация документов: Файлы (PDF, DOCX, Markdown, таблицы XLSX) разбиваются на чанки (500–1000 токенов) с перекрытием.
  2. Векторизация (Embeddings): Каждый чанк превращается в вектор с помощью нейросети (например, text-embedding-3-small или локальной bge-m3).
  3. Поиск смыслового контекста: При запросе инженера «Как устранить кавитацию в насосе типа Б?» векторный движок находит 3–5 наиболее близких фрагментов текста.
  4. Генерация точного ответа: LLM формирует структурированный ответ со ссылкой на конкретные страницы первоисточника.
# Пример функции гибридного поиска для базы знаний
from qdrant_client import QdrantClient
from sentence_transformers import SentenceTransformer

model = SentenceTransformer('BAAI/bge-m3')
qdrant = QdrantClient("localhost", port=6333)

def search_knowledge_base(query_text: str, user_allowed_cats: list, top_k: int = 5):
    # Генерация вектора запроса
    query_vector = model.encode(query_text).tolist()
    
    # Поиск с фильтрацией по ролевым правам пользователя (RBAC)
    search_result = qdrant.search(
        collection_name="b2b_portal_docs",
        query_vector=query_vector,
        query_filter={
            "must": [
                {"key": "category_id", "match": {"any": user_allowed_cats}}
            ]
        },
        limit=top_k
    )
    return search_result

Аналитика эффективного использования базы знаний

Разработка портала — это лишь половина дела. Чтобы портал реально экономил время сотрудников и снижал расходы, необходимо отслеживать метрики полезности:

  • Search Fail Rate (Доля нулевых выдачей): Процент поисковых запросов, по которым система не найдет ни одной статьи. Это прямой список тем для работы контент-мейкеров.
  • First Contact Resolution Rate (FCR): Доля вопросов поддержке, закрытых прямой ссылкой на статью базы знаний.
  • Content Freshness Index (Индекс актуальности): Процент статей, обновленных или подтвержденных экспертами за последние 180 дней.

Чек-лист готовности B2B-портала знаний к релизу

  • Интеграция с корпоративным SSO / Active Directory (LDAP).
  • Поддержка версионирования статей и истории правок.
  • Разграничение видимости вложений (PDF/CAD-файлов) по RBAC-ролям.
  • Логирование всех действий пользователей для аудита информационной безопасности.
  • Адаптированная мобильная версия и интеграция с Telegram Mini App для выездных инженеров.

Планируете разработать или модернизировать корпоративный B2B-портал знаний для команды и партнеров? Команда EvaLab спроектирует архитектуру, выстроит RBAC-доступ и интегрирует RAG-поиск на базе ваших документов. Закажите аудит и консультацию эксперта!

Следующий шаг

Превратим идею в рабочую систему

Разберём задачу, сопоставим её с целями бизнеса и предложим план внедрения с понятными этапами и критериями результата.