Панель управления → Интеграции — подключение источников контента и каналов доступа к знаниям.
#Источники контента
#Подключённые (всегда активны)
| Источник | Описание |
|---|---|
| Редактор LiKE | Встроенный AI-редактор для создания статей |
| Импорт файлов | Загрузка PDF, DOCX, TXT, MD, RTF, ZIP |
| Импорт по ссылке | Google Docs, Dropbox, прямые ссылки на файлы |
#Доступные коннекторы
| Источник | Описание | Режим |
|---|---|---|
| Wiki.js | Импорт или синхронизация статей | Sync / Import |
| Confluence | Импорт из Atlassian Confluence Cloud (OAuth) | Sync / Import |
| Notion | Импорт страниц и баз данных | Sync / Import |
| GitHub | Синхронизация Wiki и Markdown-файлов из репозиториев | Sync / Import |
| GitLab | Синхронизация Wiki и Markdown-файлов из проектов | Sync / Import |
| Gitea | Синхронизация Wiki и Markdown-файлов из self-hosted Gitea | Sync / Import |
| Сайт документации | Публичный сайт по карте sitemap | Sync |
#Подключение GitHub
#Шаг 1 — Авторизация
- В LiKE перейдите в Интеграции → GitHub → «Подключить»
- Выберите способ авторизации:
| Способ | Описание |
|---|---|
| Personal Access Token (PAT) | Создайте токен в GitHub → Settings → Developer settings → Personal access tokens. Fine-grained (рекомендуется): Repository access + Permissions → Contents: Read-only (Metadata: Read добавится автоматически); для репозиториев организации токен должен одобрить её владелец. Classic: scope repo. Enterprise: укажите Base URL https://ХОСТ/api/v3 |
| OAuth | Авторизация через GitHub App — нажмите «Авторизовать» и подтвердите доступ |
#Шаг 2 — Выбор контента
- После подключения отображается дерево репозиториев с папками и файлами
- Отметьте галочками конкретные файлы или папки для импорта (Selective Sync)
- Поддерживаемые форматы:
.md,.mdx, Wiki-страницы
#Шаг 3 — Запуск синхронизации
- Нажмите «Синхронизировать»
- Прогресс отображается в реальном времени
- После завершения — статьи появятся в списке с меткой GitHub
#Подключение GitLab
#Шаг 1 — Авторизация
- В LiKE перейдите в Интеграции → GitLab → «Подключить»
- Выберите способ авторизации:
| Способ | Описание |
|---|---|
| Personal Access Token (PAT) | Создайте токен в GitLab → Preferences → Access Tokens. Scopes: api и read_user; роль токена — не ниже Reporter (Guest не видит код). Подходит для GitLab.com и self-hosted (для self-hosted укажите Base URL инстанса) |
| OAuth | Авторизация через GitLab Application — нажмите «Авторизовать» |
#Шаг 2 — Выбор контента
- Отображается дерево проектов с Wiki-страницами и Markdown-файлами
- Отметьте конкретные страницы для импорта (Selective Sync)
#Шаг 3 — Запуск синхронизации
Аналогично GitHub — нажмите «Синхронизировать», дождитесь завершения.
#Подключение Gitea
Gitea — self-hosted git-платформа. Подключается через Personal Access Token и обязательный URL вашего инстанса (облачного Gitea по умолчанию нет).
#Шаг 1 — Создайте токен в Gitea
- В Gitea откройте Settings → Applications → Generate New Token
- Выдайте scopes
read:repositoryиread:user - Скопируйте токен
#Шаг 2 — Подключите в LiKE
- В LiKE перейдите в Интеграции → Gitea → «Подключить»
- Укажите Base URL вашего инстанса (например
https://gitea.company.com) — поле обязательное, без него подключение не пройдёт - Вставьте токен
- Выберите пространство/коллекцию и режим (Синхронизация — постоянное зеркало / Импорт — разовая копия)
OAuth 2.0 тоже поддерживается, если администратор Gitea заранее настроил OAuth-приложение. Основной путь — токен.
#Шаг 3 — Выбор контента и синхронизация
- Отобразится дерево репозиториев с Wiki-страницами и Markdown-файлами (
.md,.mdx) - Отметьте нужные узлы (Selective Sync) и нажмите «Синхронизировать»
- Для авто-обновления при push настройте webhook — секрет генерируется в карточке коннектора. Статьи из Gitea read-only (как у GitHub/GitLab)
#Выбор файлов и фильтры синхронизации (GitHub, GitLab, Gitea)
Для git-источников (GitHub, GitLab и Gitea) логика выбора, что синхронизировать, более тонкая, чем простое «вкл/выкл репозитория»:
#Что попадает в синхронизацию
| Источник внутри репозитория | Включается |
|---|---|
Wiki-страницы (<repo>.wiki) |
По умолчанию все Wiki-страницы выбранного репозитория |
Markdown файлы в основном дереве (*.md, *.mdx) |
По умолчанию все Markdown-файлы, если не настроены фильтры |
| README.md | Включается как отдельная статья с названием = <repo-name> · README |
Документация в /docs/** |
Включается, если папка есть; имя статьи берётся из заголовка # ... или filename |
Не-Markdown файлы (.txt, .rst, .json, код) |
Не синхронизируется автоматически — LiKE не парсит произвольные форматы |
#Path-фильтры (selective sync)
Можно сузить, что именно брать из репозитория:
docs/ и guides/, исключая internal/| Префикс | Действие |
|---|---|
+ path/pattern |
Include — включить файлы по pattern (glob-синтаксис) |
- path/pattern |
Exclude — исключить файлы из синхронизации |
| (пусто) | Без фильтров: все Wiki + все .md/.mdx в репозитории |
#Обнаружение изменений (recent changes)
LiKE не «качает всё» при каждом запуске синка. Используется детектирование изменений:
- GitHub — через webhook (рекомендуемый) или polling с использованием
If-Modified-Sinceheaders. Webhook реагирует на push моментально, polling — раз в 6/12/24/48 часов (зависит от автосинхронизации). - GitLab — аналогично: webhook или polling по
last_activity_atчерез Projects API. - Gitea — webhook (подпись
X-Gitea-Signature) или polling. Push-триггер срабатывает только при изменении*.md/*.mdx.
После обнаружения изменения — синхронизируются только затронутые файлы, остальной корпус не пересчитывается. Это сильно экономит API-квоты GitHub/GitLab и время выполнения.
#Branch и теги
| Параметр | Значение по умолчанию |
|---|---|
| Branch | Дефолтная ветка репозитория (обычно main / master) |
| Альтернативная ветка | Можно явно указать (например, синхронизировать с release/v2) |
| Tag-based sync | Опционально: синхронизация по тегу версии (например, документация для версии v3.0) |
| Multi-branch | Pro+: можно синхронизировать несколько веток параллельно как разные статьи |
#История и конфликты
- История синхронизаций — в карточке коннектора вкладка «История»: дата, статус (✅ ok / ⚠ warnings / ❌ error), количество добавленных / обновлённых / удалённых статей, длительность запуска. Полезно для дебага «почему статья из репозитория не появилась».
- Конфликты редактирования — если статья из источника была отредактирована в LiKE (для GitHub/GitLab по умолчанию это запрещено — статьи read-only). Если режим Import (одноразовая копия) — статьи становятся редактируемыми и связь с источником обрывается.
#Selective Sync для других коннекторов
Notion, Confluence, Wiki.js — у них своя логика выбора (дерево страниц), но принцип тот же:
- При подключении отображается дерево контента источника
- Чекбоксы — отметить нужные узлы
- Остальное не импортируется
- При повторной синхронизации обновляются только выбранные элементы
#Подключение Wiki.js
#Шаг 1 — Получите API-токен Wiki.js
- Откройте вашу Wiki.js → Administration → API Access
- Включите API (если выключен)
- Нажмите New API Key
- Назовите ключ (например
LiKE Integration) - Группа: Administrators (нужен доступ ко всем страницам)
- Expiration: без срока или на 1 год
- Скопируйте сгенерированный токен
#Шаг 2 — Подключите в LiKE
- В LiKE перейдите в Интеграции → Wiki.js → «Подключить»
- Введите URL вашей Wiki.js (например
https://wiki.company.com) - Вставьте API-токен
- Выберите режим:
| Режим | Описание |
|---|---|
| Синхронизация | Постоянная связь — изменения в Wiki.js автоматически появляются в LiKE |
| Импорт | Одноразовое копирование всех статей |
- Нажмите Сохранить
#Шаг 3 — Настройте синхронизацию
| Параметр | Описание |
|---|---|
| Автосинхронизация | Включить/выключить автоматическое обновление |
| Интервал | Каждые 6, 12, 24 или 48 часов |
| Язык | Фильтр по языку статей (все / конкретный) |
#Подключение Confluence
Confluence подключается через OAuth 2.0 — безопасная авторизация без ввода паролей.
#Шаг 1 — Нажмите «Подключить Confluence»
- В LiKE перейдите в Панель управления → Интеграции
- Найдите карточку Confluence → нажмите «Подключить»
- Откроется окно авторизации Atlassian
#Шаг 2 — Авторизуйтесь в Atlassian
- Войдите в свой Atlassian-аккаунт (если ещё не вошли)
- Atlassian покажет запрос: «LiKE запрашивает доступ к вашему Confluence»
- Проверьте права — LiKE запрашивает только чтение: содержимое страниц и список пространств
- Нажмите «Accept» (Принять)
#Шаг 3 — Вы вернётесь в LiKE
После подтверждения вас автоматически перенаправит обратно в Интеграции. Карточка Confluence покажет:
- Статус: Подключено
- Имя вашего Confluence-сайта
- Кнопку «Синхронизировать»
#Шаг 4 — Запустите синхронизацию
- Нажмите «Синхронизировать» для первого импорта
- LiKE загрузит все страницы из доступных пространств Confluence
- Статьи появятся в каталоге знаний
#Шаг 5 — Настройте автосинхронизацию
Откройте настройки (иконка шестерёнки на карточке Confluence):
| Параметр | Описание |
|---|---|
| Автосинхронизация | Включить автоматическое обновление |
| Интервал | Каждые 6, 12, 24 или 48 часов |
Статьи из Confluence — read-only. Для редактирования измените оригинал в Confluence, LiKE обновит при следующей синхронизации.
При отключении Confluence вы можете сохранить копию статей в LiKE (станут редактируемыми) или удалить их.
#Подключение Notion
#Шаг 1 — Создайте интеграцию в Notion
- Откройте Notion → нажмите на ваш аватар (левый верхний угол) → Settings
- В меню слева выберите My connections (или Integrations)
- Нажмите Develop or manage integrations → New integration
- Введите название (например
LiKE Import), выберите workspace - Нажмите Submit → скопируйте Internal Integration Secret (начинается с
ntn_; у старых интеграций — сsecret_)
#Шаг 2 — Дайте интеграции доступ к страницам
Интеграция по умолчанию не имеет доступа ни к каким страницам. Нужно явно разрешить:
- Откройте в Notion каждую страницу (или родительскую страницу/базу данных), которую хотите импортировать
- Нажмите ⋯ (три точки, правый верхний угол) → Connect to → выберите вашу интеграцию
LiKE Import - Подтвердите доступ
#Шаг 3 — Подключите в LiKE
- В LiKE → Панель управления → Интеграции → Notion → «Подключить»
- Вставьте Integration Secret (скопированный на шаге 1)
- Выберите пространство для импорта (существующее или создайте новое)
- Выберите режим:
| Режим | Описание |
|---|---|
| Синхронизация | Постоянная связь — изменения в Notion автоматически появляются в LiKE. Статьи read-only |
| Импорт | Одноразовое копирование. Статьи становятся редактируемыми в LiKE |
- Нажмите «Подключить»
- LiKE загрузит все страницы, к которым у интеграции есть доступ
#Шаг 4 — Настройте автосинхронизацию
Откройте настройки (иконка шестерёнки на карточке Notion):
| Параметр | Описание |
|---|---|
| Автосинхронизация | Включить автоматическое обновление |
| Интервал | Каждые 6, 12, 24 или 48 часов |
При отключении Notion вы можете сохранить копию статей в LiKE (станут редактируемыми) или удалить их.
#Подключение сайта документации
Коннектор забирает статьи с публичного сайта: читает его карту (sitemap) и поддерживает копию в LiKE. Подходит, когда документация уже опубликована — на своём домене, в Docusaurus, GitBook, Docsify и подобных.
#Шаг 1 — адрес сайта
Интеграции → Сайт документации → Подключить сайт. Вставьте адрес — можно любой страницы, сайт мы возьмём целиком. Карту ищем сами: сначала по robots.txt, затем по /sitemap.xml.
#Шаг 2 — что нашли
Нажмите Проверить сайт. Разведка ничего не сохраняет: она только читает карту и показывает, сколько страниц найдено и сколько будет добавлено с учётом фильтров. Если карты нет — подключение не начнётся, и мы скажем об этом прямо, а не молча заберём нулевой результат.
#Шаг 3 — куда положить
Выберите пространство и коллекцию — коллекцию можно создать прямо в мастере. После Подключить обход начинается сразу: прогресс виден на карточке коннектора («Обходим сайт 22 из 92») и в общем индикаторе фоновых задач.
#Что забирается, а что нет
- берётся содержимое страницы — без меню, шапки и подвала сайта;
- Разделы сайта ограничивают обход путями (
/docs/,/guides/); пусто — берём сайт целиком; - служебные разделы вроде поиска и тегов пропускаются по умолчанию;
- Не больше страниц за раз ограничивает один прогон — защита от огромных сайтов;
- страницы, закрытые в
robots.txt, не забираются; их число видно в итоге прогона.
#Повторные обновления
При включённой автосинхронизации мы перечитываем сайт по расписанию. Заново индексируются только изменившиеся страницы — в итоге прогона так и написано: «добавлено», «обновлено», «без изменений». Неизменившиеся не тратят лимит индексации.
Убирать пропавшие страницы — по умолчанию выключено: если страница исчезла с сайта, статья останется в базе. Включите, если копия должна строго повторять сайт.
#Какие сайты подойдут, а какие нет
Подойдёт публичный сайт с картой (sitemap) — так устроено большинство генераторов документации. Остальное мы честно отклоняем на шаге проверки, а не выясняем это после подключения:
| Что мешает | Что вы увидите |
|---|---|
Карты сайта нет — ни в robots.txt, ни по /sitemap.xml |
Подключение не начнётся |
| По адресу карты лежит не XML — обычно так отвечает защита от ботов | Подключение не начнётся |
| Карта есть, но после фильтров в ней не осталось страниц | Подключение не начнётся |
robots.txt запрещает обход всего сайта |
Подключение не начнётся |
robots.txt недоступен из-за ошибки сервера |
Подключение не начнётся: «нет ответа» — не то же самое, что «разрешено» |
| Сайт закрыт паролем или доступен только из внутренней сети | Страницы прочитать нельзя |
| Содержимое рисуется скриптами уже в браузере | Страница может оказаться почти пустой — мы читаем HTML, каким его отдал сервер |
Отдельные страницы могут не попасть в базу, даже когда сайт подключился: закрытые в robots.txt, отвечающие ошибкой, тяжелее 10 МБ или отдающие не HTML. Все они попадают в итог прогона с указанием причины — «пропущено» и «закрыто robots.txt».
Файлы (PDF, ZIP, изображения) с сайта не забираются. Для них есть отдельный сценарий — импорт файлов, со своим разбором.
#Ограничения
- один сайт на организацию;
- сайт должен быть публичным — страницы за паролем не читаются;
- нужна карта сайта: без неё подключение не состоится;
- мы соблюдаем
robots.txt, включая указанную в нём паузу между запросами.
Отключение. Синхронизация прекращается, а уже загруженные статьи можно удалить или оставить как обычные — LiKE спросит об этом при отключении.
#Импорт файлов
#Загрузка файлов
- Панель управления → Импорт
- Перетащите файлы или нажмите на зону загрузки
- Поддерживаемые форматы: PDF, DOCX, TXT, MD, RTF, ZIP
- AI автоматически генерирует название и slug для каждого файла
- Перед публикацией можно отредактировать название или открыть в редакторе
| Параметр | Описание |
|---|---|
| Максимальный размер | 20 МБ на файл, 100 МБ для ZIP |
| Пакетная загрузка | До 10 файлов за раз |
| Язык | Определяется автоматически |
#ZIP-архивы
Загрузите ZIP-архив со множеством документов — LiKE автоматически распакует и обработает каждый файл. Удобно для миграции целой базы знаний.
Поддерживаемые файлы внутри ZIP: PDF, DOCX, TXT, MD, RTF. Остальные файлы (картинки, исполняемые) пропускаются.
#Импорт по ссылке
Вставьте ссылку на документ — LiKE скачает и импортирует:
- Панель управления → Импорт → секция «Импорт по ссылке»
- Вставьте URL → нажмите «Добавить»
- Можно добавить до 10 ссылок за раз
- Нажмите «Импортировать»
Поддерживаемые источники:
- Google Docs — автоматически экспортируется как DOCX
- Google Sheets — экспортируется как CSV
- Dropbox — прямая ссылка на файл
- Любой прямой URL на PDF, DOCX, TXT, MD, RTF файл
#Видимость по умолчанию
Для каждого источника можно настроить видимость по умолчанию:
- Черновик — статьи создаются скрытыми
- Для команды — видны авторизованным пользователям
- Публичная — видны всем, включая анонимных
Настраивается в Интеграции → карточка источника → Видимость.
#Каналы доступа
Каналы позволяют вашим сотрудникам искать информацию через привычные инструменты.
#Slack-бот
1. Нажмите «Подключить Slack» в разделе Интеграции
2. Авторизуйте приложение LiKE в вашем Slack workspace
3. Выберите канал для уведомлений
4. Готово — сотрудники используют
/like вопрос или @LiKE
Функции:
/like как настроить SSO?→ AI-ответ прямо в Slack- Упоминание
@LiKEв любом канале → ответ в треде - Ссылки на статьи-источники (кликабельные)
#Telegram-бот
1. Создайте бота через @BotFather в Telegram
2. Скопируйте токен бота
3. Вставьте токен в LiKE → Интеграции → Telegram
4. Добавьте бота в нужную группу
Функции:
- Прямые сообщения боту → AI-ответ
- В групповом чате:
/ask вопрос→ ответ - Поддержка 25+ языков
#JS-виджет (для вашего сайта)
Плавающая кнопка AI-поиска для встраивания на любой сайт. Самая популярная интеграция — пользователь видит кнопку в углу страницы, кликает, открывается чат с AI и поиск по вашей базе знаний.
#Простая установка
1. Интеграции → Виджеты → «+ Создать виджет» → дайте имя и сохраните
2. Скопируйте embed-код (`<script>` тег с уникальным api-key)
3. Вставьте перед
</body> на любой странице вашего сайта
#Базовые параметры
| Параметр | Описание |
|---|---|
| Имя | Внутреннее название виджета (для админки, не виден юзерам) |
| Позиция | Левый или правый нижний угол |
| Accent-цвет | Цвет кнопки и акцентов в чате (берётся из брендинга по умолчанию) |
| Горячая клавиша | Например Ctrl+K / ⌘K для открытия чата с клавиатуры |
| Язык | Язык UI чата (auto-detect по <html lang> если не задан) |
| Placeholder | Текст в поле ввода («Задайте вопрос…») |
| Логотип в чате | Брендирование шапки чата (на планах с white-label) |
| Footer «Powered by Lynkora» | Можно скрыть на планах с white-label |
#Dual-auth: два режима аутентификации (ADR 0032)
В LiKE виджет может работать в одном из двух режимов — выбирается при создании:
- Whitelist URL'ов, где api-key валиден
- Scope =
__public__или конкретные публичные коллекции - Rate limit per api-key
- Внутренний портал компании
- SSO-aware виджет в собственном продукте
- Видит пространства пользователя
Подробнее по конфигурации каждого режима и интеграции с вашим backend — в API и виджет.
#Scope: что виджет может найти
При создании виджета задаётся scope — что именно он ищет:
В одном виджете можно комбинировать несколько scope entries (например, две коллекции из одного пространства).
#Multi-widget per tenant (ADR 0029 Stage 4)
В организации можно создать несколько независимых виджетов с разными scope и режимами:
| Виджет | Scope | Где встроен |
|---|---|---|
Marketing site widget |
public_umbrella (Public KB) |
На yourcompany.com — анонимный |
Support center widget |
collection:faq-coll |
На support.yourcompany.com — только FAQ |
Intranet widget |
space:eng-space (по JWT) |
На intranet.yourcompany.com — корпоративный, видит spaces по правам |
Каждый имеет свой api-key, аналитику использования, можно отозвать ключ независимо. Управление — в Интеграции → Виджеты → «+ Создать».
#Управление сессиями (Session JWT mode)
В Session JWT режиме каждая сессия пользователя имеет уникальный sessionId. Admin может посмотреть активные сессии конкретного виджета и принудительно отозвать токен (например, если подозревается компрометация). Список — Интеграции → Виджеты → [виджет] → Sessions.
#iframe / Direct Link
Встройте полноценный интерфейс поиска LiKE на любую страницу:
- Интеграции → iframe → скопируйте код
- Вставьте
<iframe src="...">на вашу страницу - Или используйте прямую ссылку для перехода (полная страница, не embed)
iframe и Direct Link тоже поддерживают dual-auth — выбирается при создании.
#REST API
Полноценный API для программной интеграции (например, ваш собственный UI или интеграция с другими системами):
- Интеграции → API Keys → «Создать ключ»
- Укажите название (зачем нужен ключ) и scope (так же как для виджета — public_umbrella / space / collection)
- Скопируйте ключ — показывается только один раз, после повторного открытия будет замаскирован
Используйте ключ в заголовке X-API-Key или как Bearer-токен.
Основные endpoints:
| Endpoint | Что делает |
|---|---|
POST /api/public/search |
AI-поиск по базе знаний (полный flow: retrieval + ответ + источники) |
POST /api/public/ask |
То же, без AI-ответа — только список релевантных статей |
GET /api/public/articles |
Список статей в scope api-key |
GET /api/public/articles/{id} |
Содержимое статьи |
GET /api/public/collections |
Дерево коллекций scope |
Лимиты: rate limits зависят от тарифа и привязаны к api-key. Превышение возвращает HTTP 429 с заголовком Retry-After. Точные значения для вашего плана — на странице Тарифы и в админ-панели.
Полная документация API: API и виджет.
#Языки
LiKE поддерживает 25+ языков для AI-поиска и кросс-языкового поиска (сам интерфейс доступен на 11 локалях UI):
Русский, English, Deutsch, Français, Español, Português, Italiano, Nederlands, Polski, Čeština, Svenska, Dansk, Suomi, Română, Magyar, Hrvatski, Türkçe, Afrikaans, Kiswahili, Bahasa Indonesia, Tiếng Việt, Українська, Српски, Български, Ελληνικά, 한국어, 日本語, 中文, हिन्दी, ไทย, עברית, العربية.
Кросс-языковой поиск: вопрос на одном языке → ответ из статей на другом.