Weaviate-skeeman määrittely
Suunnitelkaa ja hallinnoikaa Weaviate-dataskeemaa määrittämällä vektoriobjektien luokat ja ominaisuudet.
Weaviate-skeeman määrittely on ilmainen Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Vektoritietokannat: Pinecone, Weaviate ja pgvector-kurssilla on yhteensä 4 oppituntia.
Weaviate-schema: tietokarttasi
Tervetuloa Weaviateen! Jotta Weaviate voi tallentaa ja hakea tietoja tehokkaasti, sen on ymmärrettävä tietojen rakenne. Tässä schema tulee mukaan.
Ajattele schemaa tietojesi suunnitelmana. Se määrittää tallennettavien tietojen tyypit ja niiden väliset suhteet.
Miksi schema on tärkeä?
Hyvin määritetty schema on ratkaisevan tärkeä seuraaville:
- Tietojen yhdenmukaisuus: varmistaa, että kaikki objektit noudattavat odotettuja tyyppejä.
- Tehokas indeksointi: Weaviate käyttää schemaa tehokkaiden hakuindeksien rakentamiseen.
- Vektorointi: ohjaa sitä, miten Weaviate luo ja tallentaa tietojesi vektoriupotukset.
- Kyselyt: mahdollistaa tehokkaat semanttiset ja suodatetut haut.
Classit: tärkeimmät tietotyypit
Weaviatessa skeeman tärkeimmät rakennuspalikat ovat luokat. Luokka vastaa relaatiotietokannan taulua tai NoSQL-tietokannan kokoelmaa.
Kukin luokka edustaa erillistä tallennettavien objektien tyyppiä, kuten "Article", "Product" tai "User".
Ensimmäinen Weaviate-luokkanne
Määritellään yksinkertainen luokka nimeltä Article. Tämä luokka edustaa tietokantamme artikkeleita.
Weaviatessa luokan määritelmä sisältää sen nimen ja valinnaisen kuvauksen. Lisäämme ominaisuudet myöhemmin.
import weaviate
if __name__ == "__main__":
# Define a basic class schema
article_class_schema = {
"class": "Article",
"description": "A class for storing articles"
}
print("--- Defined Article Class Schema ---")
print(f"Class Name: {article_class_schema['class']}")
print(f"Description: {article_class_schema['description']}")
# In a real app, you'd add this to Weaviate:
# client.schema.create_class(article_class_schema)Ominaisuudet: tietokentät
Kunkin luokan sisällä määrittelette ominaisuuksia. Ne ovat yksittäisiä kenttiä tai määritteitä, jotka kuvaavat kyseisen luokan objektia.
Article-luokan ominaisuuksia voivat olla esimerkiksi title, content, author ja publicationDate.
Tärkeimmät ominaisuustyypit
Weaviate tukee ominaisuuksille useita tietotyyppejä. Yleisiä tyyppejä ovat esimerkiksi:
text: tekstimerkkijonoille, kuten nimille ja kuvauksille.int: kokonaisluvuille.number: liukuluvuille.boolean: tosi- ja epätosiarvoille.date: päivämäärä- ja aika-arvoille.text[]: tekstimerkkijonojen taulukoille.
Jokaiselle ominaisuudelle on määritettävä tietotyyppi.
Luokka ja ominaisuudet
Laajennetaan nyt Article-luokkaa lisäämällä siihen muutamia ominaisuuksia. Lisäämme ominaisuudet title, content ja wordCount.
Huomaatte, että jokaisella ominaisuudella on name ja dataType.
import weaviate
if __name__ == "__main__":
# Define a class schema with properties
article_class_with_props = {
"class": "Article",
"description": "A class for storing articles with properties",
"properties": [
{
"name": "title",
"dataType": ["text"],
"description": "The title of the article"
},
{
"name": "content",
"dataType": ["text"],
"description": "The main content of the article"
},
{
"name": "wordCount",
"dataType": ["int"],
"description": "The number of words in the article"
}
]
}
print("--- Defined Article Class with Properties ---")
print(f"Class Name: {article_class_with_props['class']}")
for prop in article_class_with_props['properties']:
print(f" Property: {prop['name']}, Type: {prop['dataType'][0]}")
# client.schema.create_class(article_class_with_props)Vektorointi ja indeksointi
Weaviate huolehtii automaattisesti tietojenne vektoroinnista ja vektori-indeksin rakentamisesta. Oletusarvoisesti se käyttää text-ominaisuuksille text2vec-mallia.
Voitte määrittää vektorisaattorin (esimerkiksi käytettävän mallin) ja vektori-indeksin (esimerkiksi HNSW-parametrit) suoraan luokan määritelmässä.
import weaviate
if __name__ == "__main__":
# Example of a class with vectorizer configuration
product_class_schema = {
"class": "Product",
"description": "A class for e-commerce products",
"vectorizer": "text2vec-openai", # Or "text2vec-huggingface", etc.
"vectorIndexConfig": {
"efConstruction": 128,
"maxConnections": 64,
"ef": -1 # default for queries
},
"properties": [
{"name": "name", "dataType": ["text"]},
{"name": "description", "dataType": ["text"]}
]
}
print("--- Defined Product Class with Vector Config ---")
print(f"Class Name: {product_class_schema['class']}")
print(f"Vectorizer: {product_class_schema['vectorizer']}")
print(f"Vector Index Config (efConstruction): {product_class_schema['vectorIndexConfig']['efConstruction']}")
# client.schema.create_class(product_class_schema)Uuden ominaisuuden lisääminen
Mitä jos olemassa olevaan luokkaan on lisättävä uusi ominaisuus? Weaviatessa skeemaa voi päivittää lisäämällä uusia ominaisuuksia.
Olemassa olevien ominaisuuksien tyyppejä ei voi muuttaa eikä ominaisuuksia poistaa suoraan ilman luokan luomista uudelleen, mikä voi johtaa tietojen menettämiseen.
import weaviate
if __name__ == "__main__":
# Imagine 'Article' class already exists
# This defines the NEW property to add
new_property = {
"name": "category",
"dataType": ["text"],
"description": "The category of the article"
}
print("--- New Property Definition ---")
print(f"Name: {new_property['name']}, Type: {new_property['dataType'][0]}")
# In a real app, you'd add this to Weaviate:
# client.schema.property.create(
# class_name="Article",
# property=new_property
# )
print("\nTo add this, you'd call client.schema.property.create(class_name, property_object)")Skeeman pikatarkistus
Mitkä seuraavista Weaviate-skeeman määrittelyä koskevista väitteistä ovat TOSIA?
Kertaus: skeeman perusteet
Olette oppineet Weaviate-skeeman määrittelyn perusteet!
- Luokat ovat tärkeimmät tietotyypit.
- Ominaisuudet määrittävät kunkin luokan määritteet.
- Weaviate käyttää skeemaa indeksointiin ja vektorointiin.
- Voitte lisätä uusia ominaisuuksia olemassa oleviin luokkiin ja kehittää skeemaa niiden avulla.
Hyvin jäsennelty skeema on tehokkaan semanttisen haun perusta Weaviatessa.
Opi Vektoritietokannat: Pinecone, Weaviate ja pgvector tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Weaviate-skeeman määrittely” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolun 3 oppituntia, myös oppitunnin “Weaviate-skeeman määrittely”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Vektoritietokannat: Pinecone, Weaviate ja pgvector-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Weaviate-skeeman määrittely”?
Suunnitelkaa ja hallinnoikaa Weaviate-dataskeemaa määrittämällä vektoriobjektien luokat ja ominaisuudet. Harjoittelet Vektoritietokannat: Pinecone, Weaviate ja pgvector-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Vektoritietokannat: Pinecone, Weaviate ja pgvector-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Weaviate-skeeman määrittely”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunnilla?
Kyllä. Jokainen Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Weaviate-skeeman määrittely
- Dataobjektien tuominen
- Weaviate GraphQL -kyselyt
- Vectorizer-moduulit ja automaattinen embedding