# Поиск в таблице

**Задача:**\
Имеется простая таблица с полями.

* "наименование", тип поля: **Текст с умным поиском** (text\_vector)
* "категория", тип поля: **Текст** (text)
* "цена", тип поля: **Число с точкой** (float)
* "в\_наличии": тип поля: **Логическое** (boolean)

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

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2F0YvXjXzdMB482uBDuIof%2Fimage.png?alt=media&#x26;token=7b449aac-3ecc-4aae-aa7c-f7450f63024a" alt=""><figcaption><p>Структура таблицы для теста</p></figcaption></figure>

### Настройка ИИ-агента

Чтобы ИИ-агент мог искать информацию в базе данных, необходимо создать соответствующую функцию. Ниже приведена пошаговая инструкция.

Примите во внимание, что поиск можно вести только по **нужным** вам полям — не обязательно использовать все существующие. При нахождении строки, ИИ-агент получит всю её информацию по всем полям.\
Например, поиск можно настроить по типу: «название», «название + цена», «название + параметр + цена». Однако имейте в виду, что чрезмерное количество параметров (более 4–5) может привести к тому, что нужная информация не будет найдена в таблице.

{% hint style="warning" %}
**Важно:** после завершения настройки не забудьте указать в промпте ИИ-агента инструкцию для вызова функции поиска.
{% endhint %}

1. Перейдите в раздел **«Функции»**.
2. Создайте новую [функцию](https://doc.nextbot.ru/functional/functions) с понятным для ИИ названием (на английском языке, латиницей), например: `get_info_from_database`
3. Добавьте переменные, указав каждую как **"необязательный параметр".**\
   В этом случае ИИ-агент сможет выполнять поиск по одному или нескольким параметрам — даже при получении неполной информации. (Подробнее о необязательных параметрах можно прочитать в статье [Советы по работе и настройке таблиц](https://doc.nextbot.ru/functional/knowledge-base/tablicy/sovety-po-rabote-i-nastroike-tablic))
   * **name** — название товара.
   * **category** — категория товара. Сделайте поле листовым и добавьте значения: `Мебель`, `Освещение`, `Текстиль`. (Подробнее о листовых значениях можно прочитать в [статье](https://doc.nextbot.ru/functional/knowledge-base/tablicy/sovety-po-rabote-i-nastroike-tablic))
   * **is\_available** — логический оператор наличия товара. Сделайте поле листовым и добавьте два значения: `true`, `false`.\ <br>

     <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2F4pmH7EHvA3bX066twFYE%2Fimage.png?alt=media&#x26;token=b32b55b2-9380-449a-9c5e-08ecb9866956" alt=""><figcaption></figcaption></figure>
4. В разделе **«Отправка результатов»** включите опцию **«Поиск в таблице»**<br>

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FYDhixemWzTBo0NGgYCLs%2Fimage.png?alt=media&#x26;token=06e019b8-a8d1-4017-9e04-156aaad9c506" alt=""><figcaption></figcaption></figure>
5. Нажмите на раздел **«Поиск в таблице»**
6. Выберите таблицу, в которой будет осуществляться поиск.<br>

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FXqOQFYg490yAjr1TvyUo%2Fimage.png?alt=media&#x26;token=57702f53-717e-4702-98f5-bd240bb51255" alt=""><figcaption></figcaption></figure>
7. Нажмите **«Новое поле»** и настройте параметры поиска.<br>

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FRhWrevZmGKFmWT3ytQa6%2Fimage.png?alt=media&#x26;token=d76ba097-4423-4a13-bbda-a666cd95fc54" alt=""><figcaption></figcaption></figure>
8. Добавим первое поле<br>

   <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FXID4a3QqiwJmWTKSg7o6%2Fimage.png?alt=media&#x26;token=6d27e03f-6e61-44d4-b1c3-8fd73aec5b41" alt=""><figcaption></figcaption></figure>
9. Развернём выпадающие параметры (подробнее про их настройки можно прочитать в этой [статье](https://doc.nextbot.ru/functional/knowledge-base/tablicy/sovety-po-rabote-i-nastroike-tablic)) и настроим их:
   * **Поле в таблице** → выберите `наименование`. Это поле имеет тип **«Текст с умным поиском (text\_vector)»**, что позволяет выполнять поиск **по смыслу** и значительно быстрее.
   * **Оператор** → оставьте **«По схожести»**. Для **text\_vector** мы настоятельно рекомендуем использовать именно его, в противном случае используйте другой тип поля (например, "текст").
   * **Источник значения** → выберите **«Значение из параметра функции»**. Поскольку мы используем "динамическое" значение, полученное от клиента.
   * **Параметр функции** → `name`.
   * Настройки **Порога схожести** оставим по умолчанию. После тестов, если вы не довольны результатом, можете сделать их более или менее строгими.<br>

     <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FSl5jq7CAwZnzwCqW0tfF%2Fimage.png?alt=media&#x26;token=70c90d09-4316-44bd-89e0-fbcbceda423f" alt=""><figcaption></figcaption></figure>
10. Добавим второй параметр и выберем его параметры
    * **Поле в таблице** → выберите `категория`.
    * **Оператор** → **«Равно (=)»**, так как поле принимает фиксированные значения.
    * **Источник значения** → **«Значение из параметра функции»**.
    * **Параметр функции** → `category`.
11. Добавим третий параметр и выберем его параметры
    * **Поле в таблице** → выберите `в_наличии`.
    * **Оператор** → **«Равно (=)»**.
    * **Источник значения** → **«Значение из параметра функции»**.
    * **Параметр функции** → `is_available`.
12. Перейдём к блоку "Настройка результатов". Здесь вы можете настроить следующие параметры:
    * **Максимальное количество результатов:** выбор **источника значения** и **количества строк**, выдаваемых ИИ-агентом на запрос клиента.\
      Сейчас для нас достаточно 5 строк (например, показать 5 вариантов мебели на один запрос), однако, если ваш случай требует показать клиенту больше, вы можете настроить значение под себя.\
      Чем больше результатов, тем больше расход токенов.
    * **Возвращаемые поля:** выберите только те поля, к которым вы хотите дать доступ ИИ-агенту.\
      \&#xNAN;*Пример:* в таблице могут быть служебные поля, информацию из которых не нужно передавать клиентам. Также это позволит экономить токены.
    * **Настройки результатов поиска по схожести:** используется для тестирования проверки схожести между запросом клиента и ответом ИИ-агента (только для полей с умным поиском). Рекомендуем выключать его после окончания тестирования, чтобы экономить токены.<br>

      <figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FVWpgSUPaMJXzV64wPJck%2Fimage_2025-06-06_12-30-55.png?alt=media&#x26;token=8491f91e-79f0-45c0-9d48-a20d75b4c9dc" alt=""><figcaption></figcaption></figure>
13. Сохраните функцию.
14. Протестируйте работу новой функции в диалоге с ИИ-агентом и удостоверьтесь, что он научился получать данные из вашей таблицы и выдавать их согласно запросу клиента.

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2F1DW0JaLLZgMdBTZLQVJ9%2Fimage.png?alt=media&#x26;token=6c131dfe-2172-4c7b-a4c9-778034569390" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2593311972-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fef2EBU68XAlye1NtG8DF%2Fuploads%2FeJGqN4xwhnOOIuZQ3eT5%2Fimage.png?alt=media&#x26;token=d405c59c-b497-4a55-9481-a27abbacb97c" alt=""><figcaption></figcaption></figure>
