AACSearch / руководство
Публикация и поддержка
Предпросмотр магазина и embed-код, размещаемая страница поиска и чата, вебхуки и входящие обращения.
Витрина
/dashboard/storefront в реальном времени отображает готовый интерфейс поиска и
чата поверх одной коллекции и выдаёт сниппет для размещения на реальном сайте.
Коллекция выбирается в заголовке и сохраняется в ?collection=, поэтому
предпросмотром можно поделиться по ссылке.
Предпросмотр работает на краткоживущем ключе search-only, который выпускает
консоль (keys.preview) и обновляет до истечения срока, — полный ключ
организации никогда не попадает в браузер.
Панель Embed this on your site содержит три вкладки:
- Web component — тег
<script type="module" src="https://cdn.aacsearch.com/aac-search.js">и элемент<aac-search>с URL API, коллекцией, полями запроса и фасетами. Замените заполнительYOUR_SEARCH_KEYключом с областью доступа search. - React —
config.jsonдляaacsearch-ui(сгенерированный из текущей конфигурации предпросмотра, с ключом, заменённым заполнителем) и пример использования компонента. - Hosted page — показывается, только если размещаемая страница существует: её URL, действие копирования, ссылка для открытия и сниппет iframe.
Страница также перечисляет, что использует предпросмотр, — поля запроса, фасеты, метки сортировки и ассистента — и предупреждает, если ассистента нет, так что чат в предпросмотре просто отсутствует. Вводный текст ссылается на редактор размещаемой страницы, а вкладки Web component и React — на API-ключи для получения ключа с областью доступа search.
Размещаемая страница
/dashboard/hosting настраивает публичную страницу поиска и чата
организации. Пока она не включена, экран содержит краткое описание и действие
Enable hosting; после включения это редактор из семи вкладок с живым
предпросмотром и закреплённой панелью сохранения, которая различает
«unsaved changes — visitors still see the last saved version» и
«everything is published».
| Вкладка | Что настраивает |
|---|---|
| General | Заголовок страницы, slug (строчные буквы, отображается под origin/a/{slug}), URL логотипа и приветственное сообщение, а также до четырёх примеров вопросов для чата. |
| Search | Включён ли поиск, коллекция, поля для поиска (query by) и до четырёх примеров запросов. Фасеты становятся фильтрами страницы. |
| Chat | Встраиваемый ассистент или No chat — search only. |
| Access | Публичная страница или защищённая, а также разрешённые email-адреса (до 200) и домены (до 50, включая поддомены). Если защитить страницу при обоих пустых списках, она будет доступна только участникам организации. |
| Sharing | Заголовок для соцсетей (70 символов), описание (200) и URL изображения (1200×630, по умолчанию — логотип). |
| Embed | Ссылка для публикации, сниппет iframe и сниппет виджета — виджет только после выбора коллекции и поля запроса. |
| Domain | Собственный домен с DNS-записями, которые нужно создать. |
Строка статуса показывает, работает ли страница или не настроена, её публичный URL, а также чипы перехода к состоянию чата, поиска, доступа и домена. Страница поставляется со своим ключом с областью доступа search, показанным только для чтения с действием копирования; AI-вызовы с этим ключом ограничиваются для каждой сессии посетителя и списываются с кошелька. Turn the page off прекращает ответы по URL и отзывает ключ; настройки не сохраняются, а повторное включение выпускает новый ключ.
Для собственного домена экран показывает записи CNAME и TXT, которые нужно создать,
с кнопками копирования, и перепроверяет статус каждые 20 секунд, пока он не станет
действительным. Возможные состояния: valid, pending (TXT подтверждена, ожидается CNAME),
missing, conflict (с записями, которые нужно удалить) и error. Распространение
изменений DNS может занять время. Для обслуживания TLS на произвольных именах хостов
перед консолью нужен слой в стиле Cloudflare for SaaS.
Публичная страница
При включённом хостинге публичной страницей является /a/{slug}:
по умолчанию company.aacsearch.com/a/{slug} или подтверждённый собственный домен.
Она считывает свою конфигурацию и определяет доступ посетителя, повторяя проверку при
смене сессии. Приватная страница предлагает посетителю войти (после чего
возвращает его на страницу), посетитель, отсутствующий в списке разрешённых, видит
отказ со своим адресом входа и действием Sign out, а при любой другой ошибке
показывается общая карточка ошибки; во время загрузки страница показывает скелетоны.
Логотип и заголовок владельца образуют шапку, заголовок вкладки браузера и превью
для соцсетей берутся из настроек Sharing (с заголовком и логотипом в качестве
запасных значений), а в футере написано «Search
and answers by AACSearch». Удалённые или неизвестные slug отвечают 404.
Вкладка Chat начинается с приветственного сообщения (или заголовка) и фиксированной строки «Ask about the catalogue — answers cite the products they are based on.» До четырёх примеров вопросов представлены кнопками, которые сразу отправляют вопрос одним нажатием, а ответ отображается как единый встроенный диалог без списка тредов. Без ассистента вкладка объясняет, что чата на странице пока нет, и предлагает вкладку поиска (или сообщает, что страница ещё не настроена).
Вкладка Search отображает интерфейс без чата, с фильтрами коллекции и URL запросов, которыми можно делиться. Пока в URL нет запроса, показывается до четырёх чипов с примерами запросов, каждый из которых записывает состояние поиска в строку запроса. Если поиск выключен или не выбраны коллекция либо поле запроса, вкладка объясняет причину — «Search is off on this page» или «Search is not set up yet» — и предлагает Back to chat.
Прокси консоли сопоставляет подтверждённый собственный домен с размещаемой страницей, поэтому в адресной строке остаётся собственный домен.
Вебхуки
/dashboard/webhooks доставляет события платформы на ваши собственные эндпоинты в
виде подписанных HTTP-запросов. Любой участник может просматривать список и
отправлять тестовое событие; создание, редактирование, включение и выключение,
ротация секрета и удаление требуют роли владельца или администратора. Без
активной организации экран предлагает её выбрать.
- List — для каждого эндпоинта показаны имя, состояние включения, URL, события подписки (не более четырёх бейджей, затем «+N more»; подстановочный знак отображается как «All events»), а также статус и относительное время последней доставки (точная метка времени при наведении) или «No deliveries yet». Переключатель включения обновляется оптимистично и откатывается при ошибке. Пустой список сопровождается объяснением, что такое вебхуки; при ошибке первой загрузки показывается «Webhooks unavailable» с Retry, а при ошибке обновления список сохраняется со встроенной ошибкой.
- Create / edit — имя (120 символов), URL эндпоинта (2048
символов, HTTP или HTTPS) и выбор событий. All events подписывает на
всё, включая события, добавленные позже, а у каждой группы есть собственный
флажок выбора/сброса с промежуточным состоянием. В выборе перечислены
события, входящие в группы (поддержка, ассистент, эксперименты, хостинг,
медиа, API-ключи, оповещения); три более новых события —
experiment.winner_detected,quality.regressionиevent.replayed— не входят ни в одну группу, поэтому их можно выбрать только через All events, а в бейджах они отображаются под исходным именем. - Screens — у экранов «New webhook» и «Edit name» есть ссылка назад к списку, скелетон на время определения роли, пустое состояние без организации и состояние «Not authorized» для участников. После создания форма заменяется карточкой «Webhook created», которая кратко перечисляет события, один раз показывает секрет и ссылается на эндпоинт; кнопка Cancel возвращает к форме.
- Signing secret — показывается один раз при создании и при ротации. Доставки
содержат заголовки
X-AACSearch-Event,X-AACSearch-Deliveryи HMAC-SHA256X-AACSearch-Signatureвидаt=<unix>,v1=<hex>, вычисленный по{t}.{body}. Ротация секрета вступает в силу немедленно, поэтому сначала обновите получатель. - Detail — имя эндпоинта (с бейджем enabled/disabled), собственный переключатель включения, доступный только администраторам, карточка конфигурации (URL эндпоинта, превью секрета подписи с Rotate, бейджи событий, метки времени создания и обновления) и меню действий: Copy webhook ID для любого участника, а также Edit, Rotate secret и Delete для администраторов. После удаления происходит возврат к списку.
- Deliveries — 100 последних доставок с событием, статусом, HTTP-кодом, числом попыток и временем, а также кнопка Refresh. Строка открывает статус доставки, HTTP-код, попытки, время создания и завершения, ошибку и точное тело JSON-запроса с действием копирования. Send test создаёт реальную доставку (доступно любому участнику) и выделяет её вверху; неудачные попытки повторяются до пяти раз (шесть попыток всего) с экспоненциальной паузой до 15 минут. «No deliveries yet» и «Deliveries unavailable» с Retry покрывают пустое и ошибочное состояния.
- Удаление эндпоинта удаляет и историю его доставок; это действие необратимо.
Входящие обращения
/dashboard/support — сторона организации в живом чате, который посетители
открывают из встроенного виджета наряду с AI-ассистентом. Треды перечислены
от новых к старым и опрашиваются каждые пять секунд.
Тред показывает тему, открыт он или закрыт, когда был открыт, историю сообщений (сообщения посетителя слева, ваши справа) и поле ответа — Enter отправляет, Shift+Enter добавляет строку. Close thread доступно, пока тред открыт; закрытый тред поясняет, что новое сообщение посетителя начинает новый тред. Треды видны любому участнику организации.