Знакомство с платформой aihelpme.ru
aihelpme.ru — система вопросов и ответов по базам знаний: она позволяет импортировать PDF, Word, веб-страницы, а также материалы из Feishu, Notion, Confluence, Yuque, DingTalk Docs и других платформ. Пользователь может задавать вопросы по этим материалам и по ссылкам в ответах открывать исходные фрагменты.
Система использует генерацию с дополнением поиском (RAG): сначала документы разбираются и индексируются, затем по вопросу извлекаются релевантные фрагменты, и большая модель формирует ответ.
Система состоит из бэкенда на Go, фронтенда на Vue 3 и сервиса разбора документов docreader на Python; поддерживаются такие способы развёртывания, как Docker Compose, Helm, одиночный бинарник Lite и настольное приложение.
Сценарии применения
| Потребность | Возможность |
|---|---|
| Множество форматов документов, PDF/сканы/таблицы трудно структурировать | Конвейер обработки документов поддерживает разбор структуры PDF, OCR сканов, конвертацию Office, извлечение веб-страниц и описания изображений; возможен гибридный разбор OpenDataLoader/Docling |
| Поиск только по векторам даёт нестабильную полноту | Гибридный поиск по векторам и ключевым словам (BM25), слияние RRF, переранжирование Rerank, опционально граф знаний (GraphRAG) и навигация по Wiki |
| Модели привязаны к одному вендору | Слой абстракции моделей: доступны локальные модели Ollama и десятки встроенных провайдеров (протоколы OpenAI-совместимый, Anthropic Messages, нативный Gemini и др.); категории LLM / Embedding / Rerank / VLM / ASR управляются раздельно, каталог провайдеров и моделей — в разделе Управление моделями |
| Безопасность данных и приватное развёртывание | Весь стек можно развернуть приватно; чувствительные учётные данные (API Key и т. п.) шифруются на диске алгоритмом AES-256 (SYSTEM_AES_KEY); изоляция мультиарендности + проверка прав по ролям RBAC |
| Многошаговые задачи и вызов инструментов | Встроенный Agent (многошаговое рассуждение ReAct), подключение инструментов MCP, выполнение Agent Skills в песочнице, веб-поиск (SearXNG и др.), анализ данных (SQL по CSV/Excel) |
| Командная работа | Тенант (рабочее пространство) + роли участников + организация (Organization) для общего доступа к базам знаний между тенантами + механизм приглашений |
Основные понятия
База знаний организует материалы, рабочее пространство управляет участниками и правами на ресурсы, а агент определяет модель и инструменты, используемые для ответа. Приведённые ниже термины соответствуют элементам интерфейса, полные определения типов находятся в internal/types/.
Тенант и идентификация
| Понятие | Описание |
|---|---|
| Тенант Tenant | Рабочее пространство; управляет базами знаний, моделями, агентами, сессиями и квотами хранилища. Подробнее — Пространства и права |
| Пользователь User | Учётная запись для входа; один пользователь может входить в несколько рабочих пространств |
| Участник TenantMember | Членство пользователя в конкретном пространстве, включает роль и статус |
| Роль TenantRole | Четыре уровня — Owner, Admin, Contributor, Viewer; определяют, какие операции пользователь может выполнять в пространстве |
| API Key (TenantAPIKey) | Учётные данные для программного доступа; можно выдать определённые возможности и ограничить область базами знаний. Права ключей пространства и платформы управляются раздельно |
| Организация Organization | Связывает несколько рабочих пространств и позволяет делиться базами знаний и агентами по ролям участников организации |
Область знаний
| Понятие | Описание |
|---|---|
| База знаний KnowledgeBase | Организует связанные материалы и настраивает модель, разбиение на блоки и стратегию индексации. Поддерживаются типы «документ», «FAQ» и «Wiki» |
| Знание Knowledge | Один файл, веб-страница или рукописная запись в базе знаний; после индексации доступно состояние разбора |
| Блок Chunk | Единица поиска после разбора документа; может содержать текст, результаты распознавания изображений, таблицы или иное индексируемое содержимое |
| FAQ | Запись вопросов и ответов со стандартным вопросом, похожими вопросами, контрпримерами и ответом; подробнее — Возможности FAQ |
| Wiki-страница WikiPage | Тематическая страница, сгенерированная из документов, со ссылками на источники и переходами между страницами; поддерживает редактирование и управление версиями |
| Граф знаний Entity / Relationship | Сущности и отношения из документов, хранятся в Neo4j и используются для дополнительного поиска связанного содержимого |
| Источник данных DataSource | Подключение для постоянной синхронизации внешних материалов. Поддерживаются Feishu/Lark (база знаний и облачный диск), Notion, Confluence, Yuque, документы DingTalk, IMA, GitLab и RSS; подробнее — Импорт из источников данных |
| Конфигурация поиска RetrievalConfig | Управляет числом кандидатов, порогом соответствия, весами слияния и переранжированием результата; подробнее — Поисковые движки |
Диалоги и агенты
| Понятие | Описание |
|---|---|
| Сессия Session | Хранит несколько раундов вопросов и ответов, а также выбранного агента, модель, область знаний и настройки инструментов |
| Сообщение Message | Один вопрос или ответ; может быть связано с изображениями, вложениями, цитатами и результатами выполнения инструментов |
| Модель Model | Подключение модели, обеспечивающей диалог, векторизацию, переранжирование, распознавание изображений или речи; подробнее — Управление моделями |
| Agent (настраиваемый агент) CustomAgent | Настраивается под задачу: модель, область материалов и инструменты; поддерживает быстрые ответы и умное рассуждение |
| Встроенный Agent | Преднастроенные агенты быстрых ответов, умного рассуждения, анализа данных и Wiki; подробнее — Движок Agent |
| Навыки и песочница | Каталог навыков пространства хранит пакеты; они устанавливаются по конфигурации песочницы и затем привязываются к агенту; поддерживаются Docker/Cube/E2B, личные переменные и создаваемые файлы, см. Навыки и песочница |
| Долговременная память | Хранит материалы/предпочтения/факты/задачи/интересы по пространству и вызывающему пользователю; по умолчанию выключена; включение и личное управление — см. Долговременная память |
| Сервис MCP MCPService | Подключает к агенту внешние инструменты; поддерживаются SSE и Streamable HTTP; аутентификация — API Key, Bearer или OAuth 2.0 |
Схема связей понятий
Список возможностей
- Загрузка документов: загрузка файлов (PDF/Word/PPT/Excel/Markdown/HTML/EPUB/XMind/изображения/аудио и др.), извлечение по URL, рукописный Markdown, загрузка целых каталогов, периодическая синхронизация с Feishu / Lark / Notion / Confluence / Yuque / DingTalk / IMA / GitLab / RSS.
- Понимание документов: разбор структуры, OCR сканов, извлечение таблиц, мультимодальное описание изображений (VLM), расшифровка аудио (ASR), выбор движка разбора по типу файла (
ParserEngineRules, можно подключить MinerU / OpenDataLoader). - Конвейер индексации: настраиваемое разбиение на блоки (включая родительские и дочерние блоки и адаптивные стратегии), векторный индекс, полнотекстовый индекс по ключевым словам, индекс FAQ, генерация Wiki, извлечение графа знаний, предварительная генерация вопросов (question generation).
- Поиск: гибридный поиск по векторам и BM25, слияние RRF, переранжирование Rerank, переписывание и расширение запроса, распознавание намерения (greeting/chitchat/web_search и др., см.
config/prompt_templates/intent_prompts.yaml). - Вопросы-ответы и Agent: потоковые ответы через SSE, сжатие многораундового контекста, отслеживание источников цитат; ReAct Agent (инструменты:
search_knowledge,read_document,list_documents,wiki_search,data_analysisи др.), внешние инструменты MCP, Agent Skills (выполнение скриптов в песочницах Docker, Cube или E2B), веб-поиск. - Опыт диалога: добавление требований во время генерации ответа, ветвление от любого вопроса в истории или откат на месте (с контрольными точками рабочей области песочницы), настройка глубины рассуждения для сессии, страница «Артефакты» собирает созданные агентами файлы по всем сессиям, подробнее — Опыт диалога.
- Мультиарендность и безопасность: проверка прав по ролям RBAC (включена по умолчанию,
WEKNORA_TENANT_ENABLE_RBAC), журнал аудита (по умолчанию хранится 90 дней), три режима регистрации (открытая регистрация,invite_register— только по приглашениям,invite_only— регистрация запрещена; старая переменнаяDISABLE_REGISTRATION=trueсоответствует запрещению регистрации), единый вход OIDC, защита от SSRF (опционально разрешать исходящие только по белому списку —SSRF_DNS_WHITELIST_ONLY), шифрование чувствительных полей AES-256. Интерфейс доступен на упрощённом и традиционном китайском, английском, японском, корейском и русском языках. - Наблюдаемость: сквозная трассировка Langfuse (вызовы LLM/Embedding/Rerank/VLM/ASR и статистика по токенам), проверки работоспособности, документация API Swagger (при
GIN_MODE=debug). - Экосистема: REST API (
/api/v1) + API Key, встроенный MCP Server (эндпоинты создаются на уровне пространства, что позволяет использовать платформу как инструмент для других агентов, см. Интеграция с MCP), CLI (cli/), мини-программа WeChat (miniprogram/), канал браузерного расширения, локальный браузер (агент управляет браузером пользователя через расширение Chrome/Edge). Настольная версия Lite (macOS) может выполнять команды агента в локальной песочнице.
Обзор компонентов системы
| Компонент | Технологии | Расположение исходников | Порт по умолчанию | Назначение |
|---|---|---|---|---|
| app (бэкенд) | Go / Gin | cmd/server, internal/ | 8080 | REST API, поиск и ответы на вопросы, движок Agent, асинхронные задачи (Asynq) |
| frontend (фронтенд) | Vue 3 + Nginx | frontend/ | 80 | Веб-консоль; Nginx проксирует /api на app |
| docreader | Python / gRPC | docreader/ | 50051 (только внутри контейнерной сети) | Конвертация файлов в Markdown, извлечение веб-страниц, извлечение изображений |
| postgres | ParadeDB (PostgreSQL 17 + расширения BM25/векторного поиска) | образ paradedb/paradedb | 5432 | Основная база данных + поисковый движок по умолчанию (RETRIEVE_DRIVER=postgres) |
| redis | Redis 7 | — | 6379 | Управление потоками (возобновление SSE), очередь задач Asynq |
| sandbox | Python 3.12 + Node 20 | docker/Dockerfile.sandbox | — | Образ контейнера песочницы для сессий Agent Skills |
| Опционально: qdrant / milvus / weaviate / doris | — | profiles docker-compose.yml | 6334 / 19530 / 9035 / 9030 | Альтернативные или дополнительные векторные движки поиска (RETRIEVE_DRIVER) |
| Опционально: opensearch | — | только docker-compose.dev.yml | 9200 | Для среды разработки; в продакшене нужен собственный кластер |
| Опционально: elasticsearch / tencent_vectordb | — | не поставляются с compose | — | Поддерживаются кодом, но требуют самостоятельного развёртывания и подключения через RETRIEVE_DRIVER |
| Опционально: neo4j | Neo4j | profile neo4j | 7474 / 7687 | Хранилище графа знаний (GraphRAG) |
| Опционально: minio | MinIO | profile minio | 9000 / 9001 | S3-совместимое объектное хранилище (STORAGE_TYPE=minio) |
| Опционально: searxng | SearXNG | profile searxng | 8888 | Самостоятельно развёрнутый движок веб-поиска |
| Опционально: стек langfuse | Langfuse 3 + ClickHouse + MinIO | profile langfuse | 3000 | Наблюдаемость LLM |
| Опционально: mcp (устарел) | Python | mcp-server/, profile full | 8082 | Устаревший отдельный MCP Server; в новых развёртываниях используйте встроенный в app эндпоинт MCP Server |
| Опционально: odl-hybrid | Docling | profile odl-hybrid | 5002 | Гибридный бэкенд разбора PDF OpenDataLoader |
Дальнейшие шаги
- Установка и развёртывание: выбор способа развёртывания и запуск сервисов.
- Быстрый старт: создание базы знаний, загрузка документов и первый вопрос-ответ.
- Подробная конфигурация: параметры развёртывания и приоритеты конфигурации.
