Jak dodać dane prawne do bazy wektorowej Qdrant? (Przewodnik krok po kroku)
Coraz więcej firm i organizacji wykorzystuje sztuczną inteligencję do szybkiego wyszukiwania informacji w dokumentach prawnych. Dzięki bazom wektorowym, takim jak Qdrant, możemy stworzyć potężną wyszukiwarkę przepisów, ustaw czy komentarzy – działającą nie po słowach kluczowych, ale po znaczeniu treści.
🔍 Czym jest Qdrant?
Qdrant to nowoczesna baza danych zoptymalizowana pod kątem semantycznego wyszukiwania. Przechowuje dane w postaci wektorów (embeddingów), które reprezentują znaczenie tekstu. Dzięki temu możesz wpisać pytanie typu „Jakie są obowiązki rodzica względem dziecka?” i dostać trafny artykuł z Kodeksu rodzinnego, nawet jeśli nie zawiera on dokładnych słów kluczowych.
📦 Co potrzebujesz, żeby zacząć?
- Działającą instancję Qdrant (lokalnie lub w chmurze)
- Klucz API OpenAI (lub lokalny model językowy, np. BERT)
- Python i kilka bibliotek:
qdrant-client,openai,pandas,tqdm - Plik z danymi prawnymi (JSON lub CSV)
🗃️ Przykładowe dane prawne (JSON)
[
{
"id": "art_1_kc",
"title": "Art. 1 Kodeksu cywilnego",
"content": "Kodeks cywilny normuje stosunki cywilnoprawne między osobami fizycznymi i prawnymi."
},
{
"id": "art_2_kc",
"title": "Art. 2 Kodeksu cywilnego",
"content": "Osobami fizycznymi są ludzie od chwili urodzenia do śmierci."
}
]
🔧 Jak działa cały proces?
Krok 1: Wczytaj dane prawne
Dane wczytujemy z pliku JSON lub CSV – każda pozycja zawiera ID, tytuł artykułu oraz treść przepisu.
Krok 2: Zamień treści na wektory (embeddingi)
Używamy OpenAI (lub lokalnego modelu), by przekształcić treść w matematyczny wektor o długości 1536 liczb – to cyfrowa forma znaczenia tekstu.
Krok 3: Załaduj dane do Qdrant
Tworzymy kolekcję w Qdrant i zapisujemy tam każdy punkt: embedding + oryginalny tekst jako tzw. payload.
Krok 4: Przeszukuj bazę pytaniami
Użytkownik wpisuje pytanie – np. „Kiedy osoba fizyczna nabywa zdolność prawną?” – a Qdrant odpowiada najtrafniejszymi artykułami.
📜 Gotowy skrypt Python
Dla wygody przygotowaliśmy skrypt w Pythonie, który automatyzuje cały proces – od wczytania danych po wyszukiwanie. Skrypt jest prosty i dobrze opisany, nawet dla osób początkujących.
# dodaj_dane_prawne_qdrant.py
import os, json, pandas as pd
from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct, VectorParams, Distance
import openai
from tqdm import tqdm
openai.api_key = "YOUR_API_KEY"
def get_embedding(text, model="text-embedding-3-small"):
return openai.embeddings.create(input=text, model=model).data[0].embedding
def load_data(file_path):
return json.load(open(file_path)) if file_path.endswith(".json") else pd.read_csv(file_path).to_dict(orient="records")
client = QdrantClient(host="localhost", port=6333)
client.recreate_collection("akty_prawne", vectors_config=VectorParams(size=1536, distance=Distance.COSINE))
documents = load_data("akty_prawne.json")
points = []
for i, doc in enumerate(tqdm(documents)):
vector = get_embedding(doc["content"])
payload = {"id_aktu": doc["id"], "tytul": doc["title"], "tresc": doc["content"]}
points.append(PointStruct(id=i, vector=vector, payload=payload))
client.upsert(collection_name="akty_prawne", points=points)
🔎 Jak wyszukiwać pytania prawne?
query = "Kiedy osoba fizyczna nabywa zdolność prawną?"
vector = get_embedding(query)
results = client.search("akty_prawne", query_vector=vector, limit=3)
for r in results:
print(r.payload["tytul"], "→", r.payload["tresc"])
✅ Podsumowanie
- Qdrant pozwala na inteligentne przeszukiwanie dokumentów prawnych
- Embeddingi tłumaczą treść na wektory zrozumiałe dla AI
- Całość można zautomatyzować w prostym skrypcie Python
To idealne rozwiązanie dla kancelarii, fundacji, startupów prawniczych i wszelkich projektów, które potrzebują błyskawicznego dostępu do wiedzy prawnej.
💬 Masz pytania?
Zostaw komentarz lub skontaktuj się – chętnie pomogę wdrożyć Qdrant w Twoim środowisku!