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

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

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

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

<figure><img src="/files/7H12RfTIq0E0ODo5rXA0" alt=""><figcaption><p>Структура таблицы для теста</p></figcaption></figure>

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

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

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

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

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

     <figure><img src="/files/uQSvrfIZmZwLVik4MEbJ" alt=""><figcaption></figcaption></figure>
4. В разделе **«Отправка результатов»** включите опцию **«Поиск в таблице»**<br>

   <figure><img src="/files/BbNYWuSo6cli9SUA7AUu" alt=""><figcaption></figcaption></figure>
5. Нажмите на раздел **«Поиск в таблице»**
6. Выберите таблицу, в которой будет осуществляться поиск.<br>

   <figure><img src="/files/FnG7lhtyvPzpOro1PUix" alt=""><figcaption></figcaption></figure>
7. Нажмите **«Новое поле»** и настройте параметры поиска.<br>

   <figure><img src="/files/3xYee9FKHXSYhhGvxNK9" alt=""><figcaption></figcaption></figure>
8. Добавим первое поле<br>

   <figure><img src="/files/vcPGL9VoE2HMB8Hvl2Z2" alt=""><figcaption></figcaption></figure>
9. Развернём выпадающие параметры (подробнее про их настройки можно прочитать в этой [статье](/functional/knowledge-base/tablicy/sovety-po-rabote-i-nastroike-tablic.md)) и настроим их:
   * **Поле в таблице** → выберите `наименование`. Это поле имеет тип **«Текст с умным поиском (text\_vector)»**, что позволяет выполнять поиск **по смыслу** и значительно быстрее.
   * **Оператор** → оставьте **«По схожести»**. Для **text\_vector** мы настоятельно рекомендуем использовать именно его, в противном случае используйте другой тип поля (например, "текст").
   * **Источник значения** → выберите **«Значение из параметра функции»**. Поскольку мы используем "динамическое" значение, полученное от клиента.
   * **Параметр функции** → `name`.
   * Настройки **Порога схожести** оставим по умолчанию. После тестов, если вы не довольны результатом, можете сделать их более или менее строгими.<br>

     <figure><img src="/files/yBg7DDleL04Se2hhHYd3" alt=""><figcaption></figcaption></figure>
10. Добавим второй параметр и выберем его параметры
    * **Поле в таблице** → выберите `категория`.
    * **Оператор** → **«Равно (=)»**, так как поле принимает фиксированные значения.
    * **Источник значения** → **«Значение из параметра функции»**.
    * **Параметр функции** → `category`.
11. Добавим третий параметр и выберем его параметры
    * **Поле в таблице** → выберите `в_наличии`.
    * **Оператор** → **«Равно (=)»**.
    * **Источник значения** → **«Значение из параметра функции»**.
    * **Параметр функции** → `is_available`.
12. Перейдём к блоку "Настройка результатов". Здесь вы можете настроить следующие параметры:
    * **Максимальное количество результатов:** выбор **источника значения** и **количества строк**, выдаваемых ИИ-агентом на запрос клиента.\
      Сейчас для нас достаточно 5 строк (например, показать 5 вариантов мебели на один запрос), однако, если ваш случай требует показать клиенту больше, вы можете настроить значение под себя.\
      Чем больше результатов, тем больше расход токенов.
    * **Возвращаемые поля:** выберите только те поля, к которым вы хотите дать доступ ИИ-агенту.\
      \&#xNAN;*Пример:* в таблице могут быть служебные поля, информацию из которых не нужно передавать клиентам. Также это позволит экономить токены.
    * **Настройки результатов поиска по схожести:** используется для тестирования проверки схожести между запросом клиента и ответом ИИ-агента (только для полей с умным поиском). Рекомендуем выключать его после окончания тестирования, чтобы экономить токены.<br>

      <figure><img src="/files/a1NJGrHLjgs6uzT5Oqkf" alt=""><figcaption></figcaption></figure>
13. Сохраните функцию.
14. Протестируйте работу новой функции в диалоге с ИИ-агентом и удостоверьтесь, что он научился получать данные из вашей таблицы и выдавать их согласно запросу клиента.

<figure><img src="/files/V7Tb1XDx5gzbQSlvSPW3" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/0AhNySBH9yeytSAeYvSj" alt=""><figcaption></figcaption></figure>


---

# 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://doc.nextbot.ru/functional/knowledge-base/tablicy/poisk-v-tablice.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.
