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 danymire(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ówNLTKlubspaCy– 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 QdrantPandas / 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ądarceGradio– 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ę!