Skip to main content

Hierarchiczne dzielenie i wyszukiwanie relacji rodzic-dziecko

DLA AGENTÓW AIChatGPTClaude

Wzorzec architektoniczny wyszukiwania, w którym dopasowanie wektorowe odbywa się na krótkich, precyzyjnych fragmentach potomnych (Child Chunks), a do kontekstu modelu pobierany jest cały szeroki blok nadrzędny (Parent Document).

1. Przegląd koncepcji i problem systemowy

Każdy inżynier budujący systemy RAG napotyka nierozwiązywalną sprzeczność:

  • Użytkownik pyta: "Jaka jest polityka timeoutów dla połączeń Redis?".
  • Baza wektorowa znajduje wiersz: timeout: 3000.
  • Jeśli przekazamy do modelu tylko ten wiersz (drobny chunk), model nie wie, do czego on należy: do Redis, PostgreSQL czy serwera HTTP.
  • Jeśli przetniemy dokumentację na ogromne fragmenty po 1500 słów, wektor semantyczny staje się "szumem", a potrzebny wiersz w ogóle nie trafia do top-5 wyników.

Hierarchical Chunking (Parent-Child Retrieval) rozwiązuje ten węzeł gordyjski: wysoka rozdzielczość wektorowa do wyszukiwania + szeroki, bogaty kontekst do generowania odpowiedzi.

2. Taksonomia architektoniczna i model mentalny

┌─────────────────────────────────────────────────────────────┐
│                 MAPA HIERARCHII RODZIC-DZIECKO              │
├─────────────────────────────────────────────────────────────┤
│ 1. DOKUMENT RODZICA (Pełna sekcja Markdown / Ciało funkcji):│
│    ID rodzica: `parent_auth_flow_42` (800 tokenów)          │
│    • Pełny opis cyklu życia sesji i obsługi błędów          │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Podział na szczegółowe dzieci    │
├─────────────────────────────────────────────────────────────┤
│ 2. CHUNKI DZIECI (Indeksowane w bazie wektorowej):          │
│    • Dziecko 1 (120 tok): [ Parametry tworzenia cookie ]    │
│    • Dziecko 2 (140 tok): [ Rotacja tokenów & TTL Redis ] ◄─│ TRAFIENIE!
│    • Dziecko 3 (100 tok): [ Obsługa błędów & zwroty 401 ]   │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Rozwiąż link `parent_id`         │
├─────────────────────────────────────────────────────────────┤
│ 3. WSTRZYKIWANY KONTEKST DLA MODELU:                        │
│    Model otrzymuje CAŁY DOKUMENT RODZICA `parent_auth_flow_42│
│    ➔ Zero fragmentacji kontekstu, krystalicznie jasna       │
│      odpowiedź!                                             │
└─────────────────────────────────────────────────────────────┘

3. Praktyczne scenariusze inżynieryjne w produkcji

01. Dokumentacja techniczna API z wieloma endpointami

Chunk nadrzędny obejmuje cały endpoint: opis, argumenty, kody odpowiedzi oraz przykłady kodu. Chunks podrzędne zawierają osobno opis każdego parametru. Użytkownik pyta o rzadko używany parametr, ale model otrzymuje pełny kontekst endpointu i tworzy poprawne zapytanie integracyjne.

02. Analiza kontraktów sądowych lub umów prawnych

Chunk podrzędny znajduje konkretny punkt dotyczący kar umownych, ale do modelu pobierany jest cały odpowiedni rozdział umowy wraz ze wszystkimi powiązanymi warunkami siły wyższej (force majeure).

4. Pułapki, typowe błędy i bezpieczeństwo

  • Duplikowanie bloków nadrzędnych (Parent Deduplication): Jeśli trzy różne chunks podrzędne z tego samego bloku nadrzędnego trafią do top-3 wyników, naiwny pipeline może trzy razy wstawić ten sam tekst do promptu. Koniecznie przeprowadzaj deduplikację po parent_id.
  • Zwiększone zużycie tokenów: Ponieważ model otrzymuje większy tekst, średni rozmiar kontekstu rośnie. Reguluj liczbę zwracanych unikalnych bloków nadrzędnych (np. nie więcej niż 3 bloki nadrzędne na zapytanie).

5. Strategiczny wniosek dla inżyniera roku 2026

Hierarchiczny RAG to najbardziej elegancki sposób na przezwyciężenie dylematu rozmiaru chunka bez przechodzenia na nadmiernie skomplikowane architektury grafowe. Rozdzielenie przestrzeni indeksowania wektorowego od przestrzeni czytania modelu jest złotą zasadą jakościowego wyszukiwania informacji.

/ Najczęściej zadawane pytaniaSchema.org FAQPage

FAQ: Hierarchiczne dzielenie i wyszukiwanie relacji rodzic-dziecko

Jeśli chunk jest zbyt mały (100 tokenów), wyszukiwanie wektorowe działa idealnie, ale modelowi brakuje kontekstu do udzielenia pełnej odpowiedzi. Jeśli chunk jest zbyt duży (1000 tokenów), wektor staje się rozmyty, a wyszukiwarka znajduje nierelwantne dokumenty.
/ Linki wewnętrzne
Wszystkie hasła