Skip to content Skip to footer

Jak przygotować dane, żeby najlepiej działały z bazą wektorową Qdrant?

Jak przygotować dane, żeby najlepiej działały z bazą wektorową Qdrant?

Chcesz stworzyć wyszukiwarkę, która rozumie znaczenie słów, a nie tylko szuka konkretnych fraz? Qdrant to baza danych, która działa właśnie w ten sposób. Ale żeby naprawdę wykorzystać jej możliwości, musisz dobrze przygotować dane. W tym artykule – prostym językiem – pokażę Ci jak to zrobić krok po kroku.

🧠 Czym w ogóle jest Qdrant?

Qdrant to baza danych, która zapisuje znaczenie tekstu w postaci tzw. wektorów. Zamiast szukać po słowach, wyszukuje po sensie. Ale żeby to zadziałało, tekst trzeba najpierw odpowiednio przekształcić. I tu zaczyna się przygotowanie danych.

📦 Etap 1: Czyszczenie danych (Cleaning)

Dlaczego to ważne?

Jeśli w tekście są błędy, śmieci, spacje, znaki specjalne albo dziwne znaki z PDF-a – embeddingi (czyli wektory) będą mniej dokładne.

Jak to zrobić?
  • Usuń podwójne spacje, znaki końca linii, tagi HTML
  • Standaryzuj znaki: cudzysłowy, myślniki, przecinki
Narzędzia:
  • Python + Pandas – popularna biblioteka do pracy z danymi
  • re (regex) – do usuwania znaków specjalnych

✂️ Etap 2: Dzielenie na fragmenty (Chunking)

Dlaczego to ważne?

Jeśli tekst jest za długi (np. cały rozdział ustawy), model nie przetworzy go poprawnie. Trzeba go podzielić na mniejsze kawałki – np. artykuły, paragrafy, akapity.

Jak to zrobić?
  • Dziel tekst co 500–1000 znaków lub po nagłówkach (np. „Art. 1”)
  • Nie przecinaj zdań w połowie – używaj kropek jako punktów podziału
Narzędzia:
  • LangChain TextSplitter – zaawansowane dzielenie z uwzględnieniem tokenów
  • NLTK lub spaCy – narzędzia NLP do dzielenia tekstu na zdania

🧩 Etap 3: Dodawanie metadanych (Payload)

Dlaczego to ważne?

W bazie Qdrant można nie tylko przeszukiwać teksty, ale też je filtrować – po roku, kategorii, tytule ustawy. Dlatego warto dodać do każdego fragmentu tzw. payload, czyli dodatkowe informacje.

Przykład payloadu:
{
  "tytul": "Art. 2 Kodeksu cywilnego",
  "ustawa": "Kodeks cywilny",
  "rok": 1964,
  "kategoria": "osoby fizyczne"
}
Narzędzia:
  • Python (słowniki i JSON)
  • Pandas – łatwe dodawanie kolumn z metadanymi

🧠 Etap 4: Generowanie embeddingów

Co to jest embedding?

To matematyczna reprezentacja znaczenia tekstu – długi ciąg liczb, który „rozumie” sens zdania.

Narzędzia:
  • OpenAI – dokładne embeddingi (np. text-embedding-3-small)
  • SentenceTransformers – lokalne modele, np. all-MiniLM-L6-v2
  • Cohere / BGE / Instructor – alternatywy z rynku open-source

📤 Etap 5: Wysyłanie danych do Qdrant

Jak to działa?

Wysyłasz wektor + payload do bazy danych Qdrant jako tzw. Point. Możesz je później przeszukiwać semantycznie.

Format jednego punktu:
{
  "id": 123,
  "vector": [0.123, 0.456, ...],
  "payload": {
    "tytul": "...",
    "ustawa": "...",
    "rok": 2024
  }
}
Narzędzia:
  • qdrant-client – biblioteka do łączenia się z Qdrant
  • Pandas / JSON / JSONL – do serializacji danych

🔍 Etap 6: Testowanie zapytań

Dlaczego to ważne?

Dobre dane = dobre wyniki. Testuj różne zapytania i sprawdzaj, co zwraca baza. Dzięki temu zobaczysz, czy dane są podzielone logicznie, czy embeddingi dobrze odwzorowują treść.

Narzędzia:
  • Streamlit – szybki interfejs do wyszukiwania w przeglądarce
  • Gradio – alternatywa do szybkich testów

✅ Podsumowanie: najlepsze praktyki

  • 🧹 Zadbaj o czystość tekstów – usuń śmieci, tagi, znaki
  • ✂️ Dziel tekst na logiczne fragmenty – nie ładuj wszystkiego naraz
  • 🏷️ Dodawaj metadane – filtruj po ustawie, roku, kategorii
  • 🧠 Generuj wektory tym samym modelem, co używasz do wyszukiwania
  • 📤 Wysyłaj dane do Qdrant jako wektor + payload
  • 🔍 Testuj – zapytania pokazują, jak dobrze działa baza

💬 Potrzebujesz gotowego narzędzia?

Jeśli chcesz gotowy skrypt do załadowania danych prawnych do Qdrant albo dashboard do wyszukiwania z przeglądarki – odezwij się. Chętnie pomogę!

Leave a comment

0.0/5