LLM Apps in Production (RAG + Vector DB + Caching) · Lekcja

Czyszczenie i usuwanie duplikatów danych źródłowych

Dowiedz się, jak czyścić zaszumione dokumenty i usuwać zduplikowane treści przed ingestion, aby indeks RAG pozostał niewielki, dokładny i wolny od sprzecznych odpowiedzi.

Lekcja 4 z 413 kroki

Czyszczenie i usuwanie duplikatów danych źródłowych to bezpłatna lekcja LLM Apps in Production (RAG + Vector DB + Caching) na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej LLM Apps in Production (RAG + Vector DB + Caching), a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs LLM Apps in Production (RAG + Vector DB + Caching) zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Garbage In, Garbage Out

RAG quality is capped by the quality of what you ingest. Boilerplate, HTML tags, duplicate pages, and broken encoding all pollute retrieval.

Cleaning and deduplication happen before chunking and embedding.

Common Noise Sources

Typical junk found in raw documents:

  • Navigation menus, headers, footers
  • Cookie banners and ads
  • Repeated legal disclaimers
  • Mojibake from bad encoding
  • Excess whitespace and control chars

Basic Text Normalization

Normalize whitespace and strip control characters first.

import re

def clean(text):
    text = re.sub(r'[\t\r]+', ' ', text)
    text = re.sub(r' {2,}', ' ', text)
    text = re.sub(r'\n{3,}', '\n\n', text)
    return text.strip()

print(clean('Hello     world\n\n\n\nbye'))

Stripping Boilerplate

Remove repeated boilerplate that appears on many pages. A simple approach: collect lines that repeat across documents and drop them.

  • Footers, copyright lines
  • Share-this widgets
  • Identical navigation blocks

Fixing Encoding Issues

Mojibake like 'caf\u00c3\u00a9' instead of 'caf\u00e9' confuses embeddings. Detect the source encoding and decode consistently to UTF-8 before storage.

Exact Duplicate Detection

The cheapest dedup: hash the normalized text and drop exact repeats.

import hashlib

seen = set()

def is_dup(text):
    h = hashlib.sha256(text.encode()).hexdigest()
    if h in seen:
        return True
    seen.add(h)
    return False

print(is_dup('a'))
print(is_dup('a'))

Near-Duplicate Detection

Exact hashing misses pages that differ by a date or a word. Use near-duplicate techniques:

  • MinHash + Jaccard similarity
  • SimHash fingerprints
  • Embedding cosine similarity above a threshold

Jaccard Similarity

A quick token-set overlap score to flag near-duplicates.

def jaccard(a, b):
    sa, sb = set(a.split()), set(b.split())
    return len(sa & sb) / len(sa | sb)

print(round(jaccard('the cat sat', 'the cat ran'), 2))

Why Duplicates Hurt RAG

Duplicate chunks waste index space and skew retrieval: the top-k results fill up with copies of the same passage, crowding out diverse evidence. Conflicting near-duplicates (old vs new policy) can even produce contradictory answers.

Building a Cleaning Pipeline

Chain the steps in order: normalize -> fix encoding -> strip boilerplate -> exact dedup -> near dedup. Log how much was removed so you can audit aggressive filters.

Idempotent Re-ingestion

When documents are re-ingested, use a stable content hash as the record key so updates replace the old version instead of creating duplicates. This keeps the index clean over time.

Quick Check

Test your understanding of deduplication.

Recap

You learned to prepare clean source data: normalize text, fix encoding, strip boilerplate, then remove both exact and near-duplicates. Use stable content hashes for idempotent re-ingestion. Cleaner inputs mean a smaller index and more accurate, non-contradictory retrieval.

Bezpłatny start

Ucz się LLM Apps in Production (RAG + Vector DB + Caching) dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Czyszczenie i usuwanie duplikatów danych źródłowych” jest bezpłatna?

Tak — pełny tekst „Czyszczenie i usuwanie duplikatów danych źródłowych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu LLM Apps in Production (RAG + Vector DB + Caching), przejdź na CoddyKit PRO. Kurs LLM Apps in Production (RAG + Vector DB + Caching) zawiera 4 lekcji w sumie.

Co nauczysz się w „Czyszczenie i usuwanie duplikatów danych źródłowych”?

Dowiedz się, jak czyścić zaszumione dokumenty i usuwać zduplikowane treści przed ingestion, aby indeks RAG pozostał niewielki, dokładny i wolny od sprzecznych odpowiedzi. Ćwiczysz LLM Apps in Production (RAG + Vector DB + Caching) z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć LLM Apps in Production (RAG + Vector DB + Caching)?

Nie wymagamy żadnego doświadczenia. LLM Apps in Production (RAG + Vector DB + Caching) w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Czyszczenie i usuwanie duplikatów danych źródłowych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji LLM Apps in Production (RAG + Vector DB + Caching)?

Tak. Każda lekcja LLM Apps in Production (RAG + Vector DB + Caching) zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wczytywanie różnych formatów dokumentów
  2. Strategie dzielenia tekstu z uwzględnieniem kontekstu
  3. Zarządzanie metadanymi i filtrowanie
  4. Czyszczenie i usuwanie duplikatów danych źródłowych
← Powrót do LLM Apps in Production (RAG + Vector DB + Caching)