Перейти к содержанию

Техническая документация

Как работает Threada, что требуется и как интегрировать.

Обзор архитектуры

  • Сканирование — Получение страниц вашего домена по sitemap и внутренним ссылкам
  • Рендеринг — Рендеринг JS‑тяжёлых страниц перед извлечением
  • Извлечение — Извлечение контента и структурированных данных
  • Разбиение — Деление контента на семантические фрагменты
  • Эмбеддинги — Преобразование фрагментов в векторные эмбеддинги
  • Индексация — Хранение эмбеддингов для поиска
  • Извлечение — Поиск релевантных фрагментов по семантическому сходству
  • Генерация — Синтез ответа из извлечённого контента
  • Цитирование — Ссылка на источник при наличии релевантного контента

Сканирование

Что мы сканируем

  • HTML‑страницы из sitemap или внутренних ссылок
  • Структурированные данные (JSON‑LD, schema.org)
  • Документы, загруженные вручную (PDF, HTML, DOCX)

Поведение сканера

  • Соблюдает robots.txt
  • User‑Agent идентифицирован
  • Ограничение скорости, чтобы не нагружать сервер
  • Откатывается при 429 или 5xx

Рендеринг JavaScript — страницы рендерятся в headless‑браузере перед извлечением для SPA и динамического контента.

Переиндексация

  • Мониторинг sitemap запускает автоматическую переиндексацию
  • Ручная переиндексация доступна в любое время
  • Плановая переиндексация настраивается по тарифу

Поиск

Семантический поиск Запросы превращаются в эмбеддинги и сопоставляются по смыслу, а не по ключевым словам.

Пороги релевантности Настраиваемо. Более высокий порог = меньше, но увереннее ответы. Более низкий = шире покрытие и больше уточнений.

Генерация ответа

Извлечённый контент передаётся модели как контекст. Ответы формируются только из этого контекста.

Ссылки на источники — когда найден релевантный контент, ответ содержит ссылку на страницу. При признании неопределённости ссылки может не быть, потому что нет источника.

Поведение на границах

  • Признаёт, чего не знает
  • Задаёт уточняющие вопросы
  • Предлагает смежные темы

Встраивание

Установка Один скрипт‑сниппет. Загружается асинхронно.

Совместимость

  • WordPress
  • Webflow
  • Shopify
  • Squarespace
  • Кастомные сайты
  • SPA (React, Vue, Angular)

Настройки в панели

  • Цвета, логотип, положение
  • Приветствие, тон
  • Языковые настройки
  • Пороги релевантности

Публичное API

Безопасный, привязанный к тенанту доступ к API для тикетов и действий во всех каналах.

Аутентификация и доступ

  • Передавайте ключ API в заголовке `X-Api-Key`.
  • Создавайте и отзывайте ключи в Admin → API keys; один ключ на интеграцию.
  • Ключи привязаны к тенанту и используют принцип наименьших привилегий через scopes.

Scopes

  • `support.read` — список и получение тикетов, сообщений и действий.
  • `support.write` — создание/обновление тикетов и добавление сообщений.
  • `support.actions` — выполнение действий и получение статуса.

Основные эндпойнты

  • `/api/v1/public/tickets` — список или создание тикетов.
  • `/api/v1/public/tickets/{ticket_id}` — получение или обновление тикета.
  • `/api/v1/public/tickets/{ticket_id}/messages` — список или добавление сообщений.
  • `/api/v1/public/tickets/{ticket_id}/actions` — выполнить действие по тикету.
  • `/api/v1/public/actions` — список или статус действий.

Формат ответа

  • JSON-ответы; временные метки в RFC 3339.
  • Ошибки возвращают `{ error: { type, message, code } }`.
  • Эндпойнты списков принимают `limit` и `page_token`.

Значения каналов

  • `web`, `email`, `sms`, `whatsapp`, `social`, `voice`, `custom`.
  • Используйте `channel_id` и `channel_thread_id` для сопоставления внешних диалогов.
  • Используйте `external_message_id` для дедупликации сообщений.

Настройка Zapier

Подключите Threada к Zapier для no-code автоматизации с контролируемой поверхностью.

Исходящая автоматизация (Threada → Zapier)

  • Создайте Zap с триггером Webhooks by Zapier “Catch Hook” и скопируйте URL hook.
  • В Admin → Support → Integrations добавьте интеграцию Zapier с URL вебхука и опциональным секретным заголовком.
  • Используйте действие Custom HTTP для отправки payload; если интеграция Custom HTTP не выбрана, по умолчанию используется Zapier.

Входящая автоматизация (Zapier → Threada)

  • Создайте ключ API со скоупами для Zapier (минимальные привилегии).
  • Используйте Webhooks by Zapier для вызова эндпойнтов Public API по тикетам и действиям.
  • Храните ключ в Zapier безопасно и регулярно ротируйте.

Энтерпрайз-гигиена

  • Разделяйте ключи по окружениям (production vs. sandbox).
  • Отзывайте ключи при отключении Zap или смене владельца.
  • Предпочитайте read-only скоупы, если автоматизации не нужно писать.

Безопасность

Хостинг: GCP, US‑Central1 по умолчанию. Шифрование: TLS 1.2+ при передаче, AES‑256 при хранении. Аутентификация: SSO через OIDC/SAML (Enterprise). Комплаенс: GDPR, настраиваемое хранение, аудит‑логи. Модель угроз покрывает prompt‑injection, XSS, SSRF, утечку данных.

Работа с данными

Хранится

  • Индексированный контент
  • Эмбеддинги
  • Логи чата
  • Аналитика
  • Конфигурация

Не хранится

  • Платёжные данные (обрабатываются процессором)
  • Пароли в открытом виде

Хранение Настраивается для каждого тенанта. Удаление по запросу.

Обучение Ваш контент не используется для обучения моделей.

FAQ

Пароль‑защищённые страницы?
Пока нет. Загрузите документы для приватного контента.
Исключить страницы?
Да. Через robots.txt или настройки в панели.
Как быстро появляются обновления?
Автопереиндексация обычно в течение 24 часов. Ручная переиндексация — сразу.
Сайт недоступен во время сканирования?
Краулер откатывается и повторяет попытку. Предыдущий контент остаётся доступен.
Можно увидеть индексированный контент?
Да. Панель показывает индексированные страницы и статус.
Несколько языков?
Да. Автоопределение или установка языка по умолчанию для каждого встраивания.
Почему иногда нет ссылки?
Ссылки ведут к источникам. Когда признаём неопределённость, источника нет — поэтому ссылки нет.