Trainer_LLM/docker/qdrant/embed_to_qdrant.py

39 lines
1.2 KiB
Python

from sentence_transformers import SentenceTransformer
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
# Modell laden (lokal oder aus Hugging Face, wenn Internet erlaubt)
model = SentenceTransformer("all-MiniLM-L6-v2")
# Qdrant-Client konfigurieren (lokaler Docker-Container)
qdrant = QdrantClient(host="localhost", port=6333)
# Collection erstellen (falls nicht vorhanden)
collection_name = "karate-doku"
if not qdrant.collection_exists(collection_name):
qdrant.recreate_collection(
collection_name=collection_name,
vectors_config=VectorParams(size=384, distance=Distance.COSINE)
)
# Beispiel-Dokumente
texts = [
"Mae-geri ist ein gerader Tritt nach vorne.",
"Der Hikite ist entscheidend für die Stabilisierung der Technik.",
"Ein Kumite-Drill verbessert die Reaktionsgeschwindigkeit."
]
# Embeddings erzeugen
embeddings = model.encode(texts).tolist()
# Einfügen in Qdrant
qdrant.upsert(
collection_name=collection_name,
points=[
PointStruct(id=i, vector=embedding, payload={"text": texts[i]})
for i, embedding in enumerate(embeddings)
]
)
print("Daten erfolgreich eingefügt.")