> For the complete documentation index, see [llms.txt](https://docs.jedidesk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jedidesk.com/nalashtuvannya-jedidesk-ai/ruchne-nalashtuvannya-funkciyi-poshuku-po-bazi-znan.md).

# Ручне налаштування функції пошуку по базі знань

## Функція пошуку по базі знань — search\_knowledge\_base

### Що це і навіщо потрібно

Функція `search_knowledge_base` — це інструмент, який дає вам повний контроль над тим, **як саме** АІ-асистент шукає інформацію у базі знань та на основі чого формує відповідь.

За замовчуванням АІ самостійно виконує пошук «під капотом» — без вашого втручання. Після активації функції цей процес стає прозорим і керованим: ви бачите, який запит надійшов до бази знань, що саме повернулося назад, і можете точно налаштувати логіку вибірки.

#### Ключові можливості

* **Контроль вибірки** — визначайте, як формується запит до бази знань і що передається АІ для генерації відповіді.
* **Додаткові інструкції** — дописуйте специфічні правила пошуку, мапінг категорій, пріоритети та інші параметри прямо у налаштуваннях функції.
* **Повні логи** — переглядайте кожен виклик: що запитував АІ, що повернула база знань, скільки часу зайняв запит.
* **Назва файлу у відповіді** — функція повертає `filename` знайденого документа, що дозволяє реалізовувати точний мапінг відповідей на конкретні файли бази знань.

***

### Як увімкнути функцію

> ⚠️ **Важливо:** За замовчуванням функція **вимкнена**. Поки вона не активована, АІ працює у штатному режимі — самостійно шукає по базі знань у фоні. Після активації АІ **перестає шукати самостійно** і використовує виключно те, що повертає функція, а також те, що прописано у основному промпті.

1. Відкрийте налаштування вашого АІ-асистента.
2. Перейдіть до розділу **Функції ШІ**.
3. Знайдіть функцію Пошук у базі знань **`search_knowledge_base`** і активуйте її (увімкніть перемикач).<br>

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

***

### Налаштування функції

Після активації натисніть на іконку налаштувань поруч із функцією. Відкриється вікно **«Налаштування функції: Пошук у базі знань»** з двома полями.<br>

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

#### Поле 1 — «Додаткова інструкція для пошуку»

У це поле вписуються додаткові правила, які АІ враховуватиме при формуванні пошукового запиту до бази знань. Тут можна:

* **Уточнити логіку формування запиту** — наприклад, вказати АІ завжди формувати повний запит із урахуванням контексту діалогу:

  ```
  Формуй повний запит, із врахуванням контексту
  ```

* **Додати інструкції по мапінгу** — якщо різні теми мають відповідати різним розділам або файлам бази знань, опишіть це тут.

  ```
  Якщо питання стосується тарифів або оплати — шукай лише у файлі site_price.txt.
  Якщо питання про доставку — шукай у файлі site_delivery.txt.
  Якщо питання про технічну підтримку — шукай у файлі site_faq.txt.
  ```

  &#x20;

* **Задати пріоритети** — наприклад, завжди шукати спочатку у певному розділі або використовувати конкретні ключові слова.

  ```
  Спочатку шукай у розділі FAQ. Якщо там немає відповіді — шукай у решті бази знань.
  Якщо питання містить слово "ціна", "тариф" або "вартість" — додай до запиту слово "прайс".
  Завжди включай у запит ключові слова з питання користувача без скорочень.
  ```

* **Скопіювати частину основного промпту** — будь-які правила, що стосуються пошуку по базі знань і вже є у вашому системному промпті, можна продублювати або перенести сюди для більш точного контролю.

  ```
  Формуй повний запит із урахуванням контексту діалогу.
  Не скорочуй запит до одного слова — передавай суть питання повністю.
  Відповідай лише на основі того, що повернула функція пошуку.
  ```

> 💡 **Порада:** Що детальніша інструкція — то точніший пошук. Однак уникайте суперечливих формулювань.

#### Поле 2 — «Відповідь, коли нічого не знайдено»

Текст, який АІ поверне користувачу, якщо пошук у базі знань не дав жодного результату. Наприклад:

```
З цим питанням вам допоможе служба підтримки.
```

Ви можете вказати будь-який текст: контакти підтримки, посилання на форму, або загальну фразу-заглушку.

#### Збереження налаштувань

Після внесення змін натисніть кнопку **«Зберегти зміни»**. Щоб закрити без збереження — **«Відмінити»**.

***

### Перегляд логів виклику функції

Кожен виклик функції `search_knowledge_base` фіксується у логах. Це дозволяє діагностувати проблеми, відстежувати ефективність пошуку та розуміти, що саме передається АІ.<br>

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

#### Як відкрити логи

1. У розділі **Функції** натисніть на іконку статистики (графік) поруч із `search_knowledge_base`.
2. Відкриється вікно **«Пошук у базі знань»** з журналом викликів.

#### Що відображається у логах

У верхній частині вікна — зведена статистика за вибраний період (7, 14 або 30 днів):

| Показник     | Опис                                          |
| ------------ | --------------------------------------------- |
| **Виклики**  | Загальна кількість звернень до функції        |
| **Успішні**  | Кількість успішно виконаних запитів           |
| **Помилки**  | Кількість викликів із помилкою                |
| **Сер. час** | Середній час відповіді функції у мілісекундах |

Нижче — таблиця з деталями кожного виклику:

| Колонка      | Опис                                         |
| ------------ | -------------------------------------------- |
| **Дата**     | Точна дата і час виклику                     |
| **Статус**   | `success` (успішно) або помилка              |
| **Сер. час** | Час виконання конкретного запиту             |
| **Діалог**   | Посилання на діалог, у якому відбувся виклик |

Щоб подивитися деталі конкретного виклику — натисніть на іконку ока праворуч у рядку.

***

### Детальний перегляд виклику (Input / Output)

При натисканні на іконку перегляду відкривається вікно **«Функція — search\_knowledge\_base»** з двома панелями.<br>

<figure><img src="/files/0SUBNbfkbp6g4DqSgaMC" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/btpAAq2gb1OYo0xkGqeq" alt="" width="563"><figcaption></figcaption></figure>

#### Input (що запитував АІ)

Відображає JSON-запит, який АІ сформував і передав функції. Зазвичай це об'єкт із полем `query`:

```json
{
  "query": "тарифи"
}
```

Тут ви бачите **точне формулювання** пошукового запиту — так, як його склав АІ на основі повідомлення користувача та ваших інструкцій.

#### Output (що повернула функція)

Відображає результат пошуку по базі знань — масив об'єктів, кожен з яких містить:

* **`score`** — релевантність знайденого фрагмента (від 0 до 1). Наприклад, `0.8388` означає дуже високу відповідність.
* **`content`** — текст фрагмента, що буде передано АІ для формування відповіді. Включає секцію, джерело (URL), заголовок та інформаційний блок.
* **`filename`** — назва файлу у базі знань, з якого взято фрагмент. Наприклад: `"site_1.txt"`.

Приклад структури output:

```json
{
  "score": 0.8388,
  "content": "[SECTION:Ціни | SOURCE:https://jedidesk.com/ua/price/]\nTITLE: Ціни та тарифи\nINFO: ...",
  "filename": "site_1.txt"
}
```

> 💡 **Про `filename` та мапінг:** Поле `filename` особливо корисне, якщо ви налаштовуєте мапінг — логіку, за якою певні питання мають завжди отримувати відповідь з конкретного документа. Знаючи назву файлу, можна прописати у інструкціях функції правила: «якщо відповідь із файлу `price.txt` — використовуй розділ X» тощо.

***

### Важлива різниця: увімкнена vs. вимкнена функція

| Стан                            | Поведінка АІ                                                                                                       |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Вимкнена** (за замовчуванням) | АІ самостійно шукає по базі знань у фоні, без вашого контролю                                                      |
| **Увімкнена**                   | АІ НЕ шукає самостійно — відповідь формується лише на основі того, що повертає функція, та даних основного промпту |

> ⚠️ Якщо функція увімкнена, але поле «Додаткова інструкція» порожнє — АІ все одно використовуватиме лише результати функції. Тому після активації обов'язково перевірте, що інструкція для пошуку заповнена коректно.

***

### Типові сценарії використання

#### Сценарій 1 — Покращення точності пошуку

Якщо АІ знаходить нерелевантні фрагменти або «вигадує» відповіді, активуйте функцію і додайте інструкцію:

```
Формуй повний запит із урахуванням контексту попередніх повідомлень у діалозі. Не скорочуй запит до одного слова.
```

#### Сценарій 2 — Мапінг категорій питань на файли

Якщо ваша база знань організована по файлах (тарифи, технічна документація, FAQ тощо), опишіть у інструкції, яка тематика відповідає яким файлам:

```
При запитах про ціни та тарифи — шукай у файлах, що містять "price" у назві.
При технічних питаннях — пріоритет файлам з "tech" або "docs".
```

#### Сценарій 3 — Контроль «заглушки» при відсутності результату

Налаштуйте зрозумілу відповідь, якщо пошук нічого не знайшов:

```
На жаль, у базі знань немає інформації з цього питання. Зверніться до нашої служби підтримки: support@yourcompany.com або скористайтеся формою зворотного зв'язку на сайті.
```

***

### Поширені запитання

**Що буде, якщо я активую функцію без заповнення інструкцій?** АІ використовуватиме лише те, що повертає функція пошуку, і дані основного промпту. Якщо основний промпт не містить правил пошуку — якість відповідей може знизитися. Рекомендуємо завжди заповнювати поле додаткових інструкцій.

**Чи зміниться щось для вже активних чатів?** Ні. Поки функція вимкнена, жоден чат не змінить поведінку. Зміни набувають чинності лише після активації.

**Де подивитися, з якого файлу АІ взяв відповідь?** Відкрийте логи виклику функції → натисніть іконку ока у потрібному рядку → у панелі Output знайдіть поле `filename`.

**Чи можна одночасно використовувати search\_knowledge\_base і стандартний пошук АІ?** Ні. Після активації функції стандартний пошук вимикається повністю. Це два взаємовиключні режими.
