Skip to content

Знакомство с платформой 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 / Gincmd/server, internal/8080REST API, поиск и ответы на вопросы, движок Agent, асинхронные задачи (Asynq)
frontend (фронтенд)Vue 3 + Nginxfrontend/80Веб-консоль; Nginx проксирует /api на app
docreaderPython / gRPCdocreader/50051 (только внутри контейнерной сети)Конвертация файлов в Markdown, извлечение веб-страниц, извлечение изображений
postgresParadeDB (PostgreSQL 17 + расширения BM25/векторного поиска)образ paradedb/paradedb5432Основная база данных + поисковый движок по умолчанию (RETRIEVE_DRIVER=postgres)
redisRedis 7—6379Управление потоками (возобновление SSE), очередь задач Asynq
sandboxPython 3.12 + Node 20docker/Dockerfile.sandbox—Образ контейнера песочницы для сессий Agent Skills
Опционально: qdrant / milvus / weaviate / doris—profiles docker-compose.yml6334 / 19530 / 9035 / 9030Альтернативные или дополнительные векторные движки поиска (RETRIEVE_DRIVER)
Опционально: opensearch—только docker-compose.dev.yml9200Для среды разработки; в продакшене нужен собственный кластер
Опционально: elasticsearch / tencent_vectordb—не поставляются с compose—Поддерживаются кодом, но требуют самостоятельного развёртывания и подключения через RETRIEVE_DRIVER
Опционально: neo4jNeo4jprofile neo4j7474 / 7687Хранилище графа знаний (GraphRAG)
Опционально: minioMinIOprofile minio9000 / 9001S3-совместимое объектное хранилище (STORAGE_TYPE=minio)
Опционально: searxngSearXNGprofile searxng8888Самостоятельно развёрнутый движок веб-поиска
Опционально: стек langfuseLangfuse 3 + ClickHouse + MinIOprofile langfuse3000Наблюдаемость LLM
Опционально: mcp (устарел)Pythonmcp-server/, profile full8082Устаревший отдельный MCP Server; в новых развёртываниях используйте встроенный в app эндпоинт MCP Server
Опционально: odl-hybridDoclingprofile odl-hybrid5002Гибридный бэкенд разбора PDF OpenDataLoader

Дальнейшие шаги ​

Версия v0.8.3 · MIT License