# Семантический поиск

Семантический поиск в типе совпадения блоков — это ИИ, который обучен извлекать контекст из условий, встроенных в сообщение клиента.

Блоки имеют приоритет над ИИ-ассистентом, поэтому вы можете использовать блок с условием и выбором совпадения «сравнение по смыслу», если хотите отправить клиенту явно проверенный и предписанный ответ.

## Как это работает

Семантический поиск сравнивает **смысл** между сообщением пользователя и заранее заданными условиями, а не полагается на точное совпадение ключевых слов.

**Основной принцип**

Система анализирует **контекст и намерение** в сообщении пользователя и ищет совпадение с **смыслом, заложенным в условии триггера**.

**Рабочий процесс обработки**

1. ИИ извлекает семантический смысл из сообщения клиента.
2. Система сравнивает этот смысл с семантическими фразами, определёнными в условиях триггера.
3. Если **семантическое совпадение** найдено, чат-бот обрабатывает соответствующее событие внутри блока (например, отправляет определённое сообщение).

**Пример**

В условии мы задаём семантическую фразу (например, *«закрытие счетов и актов»*). Если ИИ определяет этот смысл в реплике пользователя, он запускает связанный блок события.

<div data-with-frame="true"><figure><img src="/files/7f1faaf9027ab1a2e5452c48ac42f4e1d8db6d92" alt=""><figcaption></figcaption></figure></div>

Настройка блока выглядит так:

<div data-with-frame="true"><figure><img src="/files/3f58000fa065e63a9d397735fac556b5f072097d" alt="" width="563"><figcaption></figcaption></figure></div>

При выборе типа совпадения «Семантический поиск» бот должен находить в сообщении клиента похожие по смыслу слова/фразы, которые основаны на триггере блока:

<div data-with-frame="true"><figure><img src="/files/7d59c4a115fd7a4848326b8e39b5ee183eb1505f" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/76633e13078e2d042e59867719c20e97e5ff5505" alt="" width="563"><figcaption></figcaption></figure></div>

Каждый раз, когда бот обрабатывает сообщение клиента, он корректно выполняет необходимое событие в блоке.

## Как написать триггер

Триггер в соответствующем поле записывается так же, как и любой другой триггер при выборе любого совпадения:

<div data-with-frame="true"><figure><img src="/files/501d2bf6699500779ba755d3980dd6c13ceb3981" alt="" width="563"><figcaption></figcaption></figure></div>

Создание ясных, кратких и точных условий критически важно для **производительности, надёжности и пользовательского опыта**. Вот почему это важно:

* **Корректная обработка:** Точные условия гарантируют, что чат-бот правильно определяет и выполняет нужное событие.
* **Скорость обработки:** Сложные, неоднозначные или слишком многословные фразы увеличивают время обработки ИИ и могут снизить скорость ответа.
* **Надёжность схемы:** Неясная формулировка повышает риск неверного толкования, что может привести к некорректной работе вашего сценария.

Избегайте чрезмерно сложных слов, неоднозначных терминов и длинных, состоящих из нескольких предложений фраз в своих условиях.

**Пример эффективного условия триггера**

<div data-with-frame="true"><figure><img src="/files/da7774eecdeb4e0df5a460199dfe7b48177efecc" alt="" width="563"><figcaption></figcaption></figure></div>

Пример <mark style="color:красный;">**НЕправильного условия триггера**</mark>:

<div data-with-frame="true"><figure><img src="/files/2573cfe8280b03b44351b2943a096da806c217f9" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
**Избегайте условий триггера из одного слова**

Хотя условия должны быть краткими, они также должны быть **семантически значимыми**. Одного слова (например, «счёт») часто недостаточно для точного семантического сопоставления.

**Используйте описательные фразы**

Вместо отдельных слов используйте короткие описательные фразы, которые передают намерение.

**Пример:**

❌ `«счёт»`\
✅ `«ежемесячная оплата счёта»`

Это даёт модели ИИ более понятный контекст для точного семантического сравнения.

**Ключевой принцип**

ИИ сравнивает *смысл* условий, а не только ключевые слова. Хорошо сформулированная фраза задаёт необходимые семантические критерии для надёжного сопоставления.
{% endhint %}

### **Пример**

Когда вы пишете более подробные триггеры для Семантического поиска, ИИ понимает контекст и быстро отвечает.

<div data-with-frame="true"><figure><img src="/files/62cf6a8838541218c5a46b12360333edafcae387" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/13e191d41180bb629c294be6e01889041cb0771f" alt="" width="563"><figcaption></figcaption></figure></div>

Если вы задаёте условие триггера, используя только **одно слово** (как в примере ниже), ИИ может **не обнаружить достаточный контекст** и не запустит ответ, в результате чего ничего не произойдёт.

<div data-with-frame="true"><figure><img src="/files/90c4d26a2c01bef99bfdcc6542f9aca2ca89ea0d" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/73b625af618192966324e5e08b12f4d8a7d50f62" alt="" width="563"><figcaption></figcaption></figure></div>

Также блок с корректными настройками не сработает, потому что ИИ не сможет найти триггер нужного блока в сообщении клиента и не сможет отправить ему никакое сообщение.

{% hint style="warning" %}

#### Будьте внимательны

Также, если триггер для Семантического поиска некорректен (слишком короткий или неоднозначный), ИИ может отвечать на такие триггеры не вовремя или не в том месте.
{% endhint %}

## **Пример чат-бота Smart Station AI**

{% hint style="success" %}
В этом примере мы наглядно покажем приоритет блоков над ИИ-ассистентами и поиск по контексту в сообщении клиента с выбором типа Семантический поиск.
{% endhint %}

В конструкторе чат-бота мы создаём два блока «Start», в каждом из которых выбираем тип «Семантический поиск» и сообщение «Включение/выключение света»:

1. Блок 1 «Включить свет»

<div data-with-frame="true"><figure><img src="/files/b8041fd84d408fd1227b7f7eef88b270a60a12b5" alt="" width="563"><figcaption></figcaption></figure></div>

2. Блок 2 «Выключить свет»

<div data-with-frame="true"><figure><img src="/files/daf9249424278b06297ae1e364a3c8e5b96a3b68" alt="" width="563"><figcaption></figcaption></figure></div>

Чтобы понять, что сработал именно блок, а не ИИ-ассистент, мы добавим в сообщение каждого блока дополнительную строку.

Далее переходим к ИИ-ассистенту.

Создание бота с ролью «Универсальный ИИ-ассистент».

<div data-with-frame="true"><figure><img src="/files/244c9ae7809a6868997e4aee7b5673a0b87a23ba" alt="" width="563"><figcaption></figcaption></figure></div>

В демонстрационных целях мы не будем применять никаких ограничений к поведению ассистента при обработке блоков.

Все настройки завершены. Перейдём к тестированию.

1. Начните чат со Smart Station, чтобы запустить его.

<div data-with-frame="true"><figure><img src="/files/0e641324bd0a29750988a28ff45dc10981ac2038" alt="" width="375"><figcaption></figcaption></figure></div>

Поскольку мы никак не ограничили станцию, она может говорить на совершенно абстрактные темы.

2. Теперь в контексте нашего сообщения мы прописываем ключевой смысл — включить или выключить свет:

<div data-with-frame="true"><figure><img src="/files/51c2a36e55f62ff96147835460791a5dbf6917b9" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/a012572af19a53a0474349f7ecd335f8b7bb0976" alt="" width="375"><figcaption></figcaption></figure></div>

Бот сработал корректно.

Таким образом, в те моменты, когда триггер из блока не выполняется, работает ассистент.

Однако если бот обнаруживает контекст, определённый условием блока, срабатывает сам блок.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/ai/search.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
