Przejdź do treści
Intum

Bazy wektorowe

Aktualizacja: Wyświetleń: 568 3 min czytania

Bazy wektorowe

Bazy wektorowe umożliwiają wyszukiwanie semantyczne — zamiast szukać po dokładnym dopasowaniu słów, system rozumie znaczenie tekstu i znajduje podobne treści.

Jak to działa?

  1. Embedding — każdy tekst jest konwertowany na wektor liczbowy (1536 wymiarów) przez model AI
  2. Przechowywanie — wektory są zapisywane w bazie wraz z oryginalnym tekstem i metadanymi
  3. Wyszukiwanie — pytanie użytkownika jest zamieniane na wektor i porównywane z zapisanymi wektorami (cosine distance)
  4. Wyniki — system zwraca najlepiej dopasowane wpisy

Zastosowania

  • RAG (Retrieval-Augmented Generation) — wzbogacanie odpowiedzi AI o kontekst z bazy wiedzy
  • Wyszukiwarka semantyczna — znajdowanie podobnych dokumentów, artykułów, FAQ
  • Chat z bazą wiedzy — zadajesz pytanie, AI odpowiada na podstawie Twoich dokumentów

Wymagania

Baza wektorowa wymaga connectora AI (OpenAI, Gemini lub Claude) z obsługą embeddingów do generowania wektorów.

Wpisy

Każdy wpis w bazie wektorowej zawiera:

  • Treść tekstową
  • Wektor embedding
  • Metadane (np. URL źródła)
  • Powiązanie ze źródłem (typ + ID, np. Kb::Entry #35)
  • Numer chunka (gdy tekst był dzielony)

Dzielenie tekstu na chunki

Długie teksty są automatycznie dzielone na mniejsze fragmenty (chunki) przed generowaniem embeddingu. Każdy chunk to osobny wpis w bazie wektorowej — ale wszystkie chunki z jednego źródła (np. wpisu KB) są ze sobą powiązane.

Opcja “Chunking włączony”

W ustawieniach bazy wektorowej można włączyć opcję dzielenia na chunki. Zmienia to zachowanie:

Ustawienie Rozmiar chunka Efekt
Chunking wyłączony max tokenów modelu (np. 8191 dla OpenAI) Tekst dzielony tylko gdy przekracza limit modelu. Większe fragmenty, mniej wpisów
Chunking włączony ~500 tokenów (~1-2 paragrafy) Tekst zawsze dzielony na małe fragmenty. Precyzyjniejsze wyszukiwanie

Kiedy włączyć chunking

  • Włącz gdy źródło ma długie dokumenty (artykuły, regulaminy, dokumentacja) i zależy ci na precyzji wyszukiwania — mały chunk lepiej dopasowuje się do konkretnego pytania
  • Zostaw wyłączony gdy wpisy są krótkie (FAQ, pojedyncze pytania/odpowiedzi) — dzielenie krótkich tekstów nie ma sensu

Jak działa dzielenie

  1. System rozpoznaje strukturę tekstu — nagłówki markdown (## Sekcja), paragrafy, listy HTML
  2. Nowa sekcja (nagłówek) to naturalna granica chunka
  3. Każdy chunk dostaje prefix z nagłówkiem sekcji, do której należy — dzięki temu nie traci kontekstu
  4. Jeśli tekst jest w HTML — system konwertuje go na structured text zachowując nagłówki i paragrafy
  5. Tokeny liczone dokładnie przez tiktoken (tokenizer OpenAI) — nie zgaduje po znakach

Limity per model

Każdy model embeddingowy ma inny limit tokenów na jedno wywołanie. System automatycznie pobiera limit z connectora:

Model Max tokenów Efekt z chunking OFF Efekt z chunking ON
OpenAI text-embedding-3-small 8 191 chunki do ~7 800 tokenów chunki do 500 tokenów
Cohere embed-v4 (Bedrock) 128 000 praktycznie bez dzielenia chunki do 500 tokenów
Gemini embedding 2 048 chunki do ~1 900 tokenów chunki do 500 tokenów

Przy przełączeniu connectora (np. z OpenAI na Cohere) limity dostosowują się automatycznie — nie trzeba nic zmieniać w ustawieniach bazy.

Czy ten wpis był pomocny?

Udostępnij

Komentarze