39 lines
1.2 KiB
Python
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.")
|