Перейти до вмісту
Intum — Довідковий центр

Векторні бази

Оновлення: 3 хв читання

Векторні бази

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

Як це працює?

  1. Ембединг - кожен текст конвертується у числовий вектор (1536 вимірів) моделлю AI
  2. Зберігання - вектори записуються в базі разом з оригінальним текстом і метаданими
  3. Пошук - запитання користувача перетворюється на вектор і порівнюється із записаними векторами (cosine distance)
  4. Результати - система повертає найкраще дібрані записи

Застосування

  • RAG (Retrieval-Augmented Generation) - збагачення відповідей AI контекстом з бази знань
  • Семантичний пошук - знаходження схожих документів, статей, FAQ
  • Чат із базою знань - ви ставите запитання, AI відповідає на основі ваших документів

Вимоги

Векторна база потребує конектора AI (OpenAI, Gemini або Claude) з підтримкою ембедингів для генерації векторів.

Записи

Кожен запис у векторній базі містить:

  • Текстовий вміст
  • Вектор ембедингу
  • Метадані (наприклад, URL джерела)
  • Зв’язок із джерелом (тип + ID, наприклад Kb::Entry #35)
  • Номер chunk-а (коли текст ділився)

Поділ тексту на chunk-и

Довгі тексти автоматично діляться на менші фрагменти (chunk-и) перед генерацією ембедингу. Кожен chunk - це окремий запис у векторній базі, але всі chunk-и з одного джерела (наприклад, запису KB) пов’язані між собою.

Опція “Chunking увімкнено”

У налаштуваннях векторної бази можна ввімкнути опцію поділу на chunk-и. Це змінює поведінку:

Налаштування Розмір chunk-а Ефект
Chunking вимкнено макс. токенів моделі (наприклад, 8191 для OpenAI) Текст ділиться лише коли перевищує ліміт моделі. Більші фрагменти, менше записів
Chunking увімкнено ~500 токенів (~1-2 абзаци) Текст завжди ділиться на малі фрагменти. Точніший пошук

Коли вмикати chunking

  • Увімкніть, коли джерело має довгі документи (статті, регламенти, документація) і вам залежить на точності пошуку - малий chunk краще підходить до конкретного запитання
  • Залиште вимкненим, коли записи короткі (FAQ, окремі запитання/відповіді) - ділити короткі тексти немає сенсу

Як працює поділ

  1. Система розпізнає структуру тексту - заголовки markdown (## Секція), абзаци, списки HTML
  2. Нова секція (заголовок) - це природна межа chunk-а
  3. Кожен chunk отримує префікс із заголовком секції, до якої належить - завдяки цьому він не втрачає контексту
  4. Якщо текст у HTML - система конвертує його в structured text, зберігаючи заголовки та абзаци
  5. Токени рахуються точно через tiktoken (токенізатор OpenAI) - не вгадуються за символами

Ліміти за моделлю

Кожна модель ембедингу має інший ліміт токенів на один виклик. Система автоматично отримує ліміт з конектора:

Модель Макс. токенів Ефект з chunking OFF Ефект з chunking ON
OpenAI text-embedding-3-small 8 191 chunk-и до ~7 800 токенів chunk-и до 500 токенів
Cohere embed-v4 (Bedrock) 128 000 практично без поділу chunk-и до 500 токенів
Gemini embedding 2 048 chunk-и до ~1 900 токенів chunk-и до 500 токенів

При перемиканні конектора (наприклад, з OpenAI на Cohere) ліміти пристосовуються автоматично - не потрібно нічого змінювати в налаштуваннях бази.

Чи була ця інформація корисною?

Поділитися

Коментарі