Importera dataobjekt
Lär er att effektivt importera och hantera dataobjekt i er Weaviate-instans, inklusive tillhörande vektorer.
Importera dataobjekt är en gratis lektion i Vektordatabaser: Pinecone, Weaviate och pgvector på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Vektordatabaser: Pinecone, Weaviate och pgvector, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Vektordatabaser: Pinecone, Weaviate och pgvector innehåller totalt 4 lektioner.
Importera data till Weaviate
Välkomna! I den här lektionen får ni lära er hur ni överför era värdefulla data till er Weaviate-instans. Det här är ett viktigt steg för att kunna utföra semantiska sökningar och dra nytta av Weaviates kraftfulla funktioner.
Vi går igenom hur ni lägger till enskilda dataobjekt och, ännu viktigare, hur ni effektivt importerar stora datamängder med hjälp av batchoperationer, inklusive hantering av anpassade vektorer.
Konfigurera Weaviate-klienten
Innan ni kan importera data måste ni upprätta en anslutning till er Weaviate-instans med hjälp av dess Python-klient. Klienten fungerar som ert huvudsakliga gränssnitt för att interagera med databasen.
Kör koden nedan för att se hur ni ansluter till en lokal Weaviate-instans.
import weaviate
def main():
# Connect to a local Weaviate instance
# For a cloud instance, you'd use weaviate.connect_to_wcs(...)
client = weaviate.connect_to_local()
if client.is_connected():
print("Weaviate client connected successfully!")
else:
print("Failed to connect to Weaviate.")
client.close() # Always close the connection
if __name__ == "__main__":
main()Förstå Weaviate-objekt
I Weaviate lagras era data som dataobjekt. Varje objekt tillhör en specifik samling (ungefär som en tabell eller klass) och har:
- Egenskaper: Nyckel-värde-par som beskriver era data (till exempel en artikels 'title' eller 'content').
- Vektor: En numerisk representation (embedding) av objektets innebörd, som används vid likhetssökningar.
Weaviate kan generera dessa vektorer åt er, eller så kan ni tillhandahålla egna.
Lägga till ett enskilt dataobjekt
Det enklaste sättet att lägga till data är att skapa ett objekt i taget. Det är användbart för små datamängder eller vid testning. Weaviate genererar automatiskt en embedding för objektet baserat på dess egenskaper.
Exemplet förutsätter att ni har definierat en samling med namnet 'Article' (från föregående lektion).
import weaviate
def main():
client = weaviate.connect_to_local()
if not client.is_connected():
print("Connection error. Exiting.")
return
article_obj = {
"title": "Introduction to Embeddings",
"content": "Embeddings convert data into numerical vectors for AI tasks."
}
try:
data_id = client.data_object.create(
properties=article_obj,
collection="Article" # Must match your schema
)
print(f"Article object created with ID: {data_id}")
except Exception as e:
print(f"Error creating object: {e}")
finally:
client.close()
if __name__ == "__main__":
main()Inkludera anpassade vektorer
Ofta vill ni använda embeddings som har genererats i förväg av era egna modeller (till exempel från ett anrop till OpenAI API). Ni kan ange dessa anpassade vektorer när ni skapar ett objekt.
Exemplet använder en platshållarvektor. I en verklig applikation skulle detta vara en högdimensionell vektor från en embedding-modell.
import weaviate
def main():
client = weaviate.connect_to_local()
if not client.is_connected():
print("Connection error. Exiting.")
return
article_obj = {
"title": "Advanced RAG Techniques",
"content": "RAG systems can be enhanced with query transformations."
}
# Example custom vector (dimensions must match your collection config)
custom_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
try:
data_id = client.data_object.create(
properties=article_obj,
collection="Article",
vector=custom_vector # Provide your pre-generated vector
)
print(f"Article object created with ID: {data_id}")
except Exception as e:
print(f"Error creating object: {e}")
finally:
client.close()
if __name__ == "__main__":
main()Effektiva batchimporter
För stora datamängder är det ineffektivt att importera objekt ett i taget på grund av nätverksöverföringens overhead. Weaviates funktion för batchimport låter er skicka flera objekt i samma begäran, vilket förbättrar prestandan avsevärt.
Den här metoden rekommenderas starkt för produktionsapplikationer och storskalig inläsning av data.
Implementera grundläggande batchimport
Weaviate-klienten tillhandahåller en praktisk kontexthanterare för batchimport. Ni lägger till objekt i batchen, så hanterar klienten sändningen på ett effektivt sätt.
I det här exemplet genererar Weaviate vektorerna för varje artikel i batchen.
import weaviate
def main():
client = weaviate.connect_to_local()
if not client.is_connected():
print("Connection error. Exiting.")
return
articles_to_import = [
{"title": "Vector DBs Explained", "content": "Store and search vectors."},
{"title": "Pinecone vs. Weaviate", "content": "Comparing vector databases."},
{"title": "Introduction to pgvector", "content": "Vectors in PostgreSQL."}
]
try:
with client.batch as batch:
for article in articles_to_import:
batch.add_object(
properties=article,
collection="Article"
)
print(f"Successfully added {len(articles_to_import)} objects in batch.")
except Exception as e:
print(f"Error during batch import: {e}")
finally:
client.close()
if __name__ == "__main__":
main()Batchimport med förgenererade vektorer
Precis som vid import av enskilda objekt kan ni ange anpassade vektorer för varje objekt när ni utför en batchimport. Det är vanligt när ni redan har bearbetat era data med en embedding-modell.
Kontrollera att vektordimensionerna stämmer överens med konfigurationen för er samling.
import weaviate
def main():
client = weaviate.connect_to_local()
if not client.is_connected():
print("Connection error. Exiting.")
return
data_with_vectors = [
{
"properties": {"title": "AI in Healthcare", "content": "LLMs for medical research."},
"vector": [0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88]
},
{
"properties": {"title": "Future of Robotics", "content": "Automation and ML."},
"vector": [0.88, 0.77, 0.66, 0.55, 0.44, 0.33, 0.22, 0.11]
}
]
try:
with client.batch as batch:
for item in data_with_vectors:
batch.add_object(
properties=item["properties"],
collection="Article",
vector=item["vector"]
)
print(f"Successfully added {len(data_with_vectors)} objects with vectors in batch.")
except Exception as e:
print(f"Error during batch import with vectors: {e}")
finally:
client.close()
if __name__ == "__main__":
main()Bästa praxis för import
Så här optimerar ni importprocessen:
- Batchstorlek: Experimentera med
batch_size(till exempel 64, 128 eller 256) för optimalt genomflöde utifrån ert nätverk och er Weaviate-instans. - Felhantering: Implementera robust felhantering och mekanismer för nya försök, särskilt vid stora importer som kan drabbas av tillfälliga nätverksproblem.
- Förbearbeta data: Rensa och strukturera era data före importen för att säkerställa att de överensstämmer med ert Weaviate-schema.
- Asynkrona importer: Överväg asynkron batchimport för ännu bättre effektivitet vid mycket stora datamängder.
Kontrollera era kunskaper
Vilka av följande är fördelar med att använda Weaviates batchimport jämfört med att importera objekt ett i taget?
Sammanfattning: importera Weaviate-data
Bra arbete! Ni har lärt er grunderna i hur ni får in era data i Weaviate:
- Hur ni ansluter till er Weaviate-instans med hjälp av klienten.
- Strukturen hos ett Weaviate-dataobjekt, inklusive egenskaper och vektorer.
- Hur ni lägger till enskilda dataobjekt, med eller utan anpassade vektorer.
- Vikten av och hur ni implementerar effektiva batchimporter för stora datamängder.
Nu är ni redo att fylla era Weaviate-samlingar med era egna data!
Lär dig Vektordatabaser: Pinecone, Weaviate och pgvector med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Importera dataobjekt” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Vektordatabaser: Pinecone, Weaviate och pgvector, inklusive ”Importera dataobjekt”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Vektordatabaser: Pinecone, Weaviate och pgvector innehåller totalt 4 lektioner.
Vad lär jag mig i ”Importera dataobjekt”?
Lär er att effektivt importera och hantera dataobjekt i er Weaviate-instans, inklusive tillhörande vektorer. Ni övar på Vektordatabaser: Pinecone, Weaviate och pgvector med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Vektordatabaser: Pinecone, Weaviate och pgvector?
Du behöver inga förkunskaper. Utbildningen i Vektordatabaser: Pinecone, Weaviate och pgvector på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Importera dataobjekt”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Vektordatabaser: Pinecone, Weaviate och pgvector-lektionen?
Ja. Varje Vektordatabaser: Pinecone, Weaviate och pgvector-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Definiera Weaviate-scheman
- Importera dataobjekt
- Weaviate GraphQL-frågor
- Vectorizer-moduler och automatisk embedding