Vektoritietokannat: Pinecone, Weaviate ja pgvector · Oppitunti

Weaviate GraphQL -kyselyt

Ottakaa haltuun Weaviate-datan kyselyt sen tehokkaan GraphQL-rajapinnan avulla semanttista hakua ja tiedonhakua varten.

Oppitunti 3/411 vaihetta

Weaviate GraphQL -kyselyt on ilmainen Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.

Weaviaten GraphQL-teho

Tervetuloa! Tässä oppitunnissa opitte hallitsemaan Weaviate-tietojenne kyselyitä. Weaviate käyttää joustavaa ja tehokasta GraphQL-kyselykieltä tietojen hakemiseen.

GraphQL:n avulla voitte pyytää täsmälleen tarvitsemanne tiedot – ette enempää ettekä vähempää. Tämä on erityisen hyödyllistä monimutkaisissa hauissa, kuten vektoreiden samankaltaisuushauissa.

Tietojen perushaku: Get

Weaviate-kyselyiden perusta on Get-operaatio. Sen avulla voitte hakea dataobjekteja skeemassanne määritetystä luokasta.

  • Määrittäkää luokan nimi (esimerkiksi Article).
  • Valitkaa haettavat ominaisuudet (esimerkiksi title ja content).
  • Weaviate palauttaa kaikki kyseisen luokan objektit määritettyine ominaisuuksineen.

Esimerkki kaikkien objektien hakemisesta

Katsotaan, miten perusmuotoinen Get-kysely toimii. Tämä Python-koodi muodostaa yhteyden Weaviate-instanssiinne ja hakee kaikkien Article-objektien title- ja content-ominaisuudet.

(Varmistakaa, että Weaviate-instanssi on käynnissä paikallisesti osoitteessa http://localhost:8080 ja että 'Article'-luokassa on tietoja.)

import weaviate

# Connect to your Weaviate instance
# For local: http://localhost:8080
client = weaviate.Client(url="http://localhost:8080")

# Perform a basic Get query for 'Article' objects
try:
    response = client.query.get("Article", ["title", "content"]).do()
    print("--- Retrieved Articles ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}")
except Exception as e:
    print(f"Error during query: {e}")

Tietojen suodattaminen 'where'-ehdolla

Usein ette halua kaikkia objekteja, vaan vain tietyt objektit. where-suodattimella voitte lisätä kyselyihinne ehtoja ja rajata tuloksia.

  • Voitte suodattaa ominaisuuksien arvojen perusteella (teksti, luku, totuusarvo ja päivämäärä).
  • Käyttäkää operaattoreita, kuten Equal, Like ja GreaterThan.
  • Yhdistäkää useita ehtoja _and- tai _or-lausekkeilla.

Suodattaminen ominaisuuden arvon perusteella

Tässä esimerkissä näytetään, miten where-suodatinta käytetään tietyn kirjoittajan kirjoittamien artikkeleiden etsimiseen. Etsimme artikkeleita, joiden author-ominaisuuden arvo vastaa arvoa 'Jane Doe'.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Define the 'where' filter
where_filter = {
    "path": ["author"],
    "operator": "Equal",
    "valueText": "Jane Doe"
}

# Perform the Get query with the filter
try:
    response = client.query.get("Article", ["title", "author"])
                          .with_where(where_filter).do()
    print("--- Articles by Jane Doe ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}, Author: {article['author']}")
except Exception as e:
    print(f"Error during query: {e}")

Vektoriesitysten hakeminen

Weaviate tallentaa jokaiselle objektille vektoriesityksen, joka kuvaa sen semanttista merkitystä. Voitte hakea tämän vektorin suoraan osana GraphQL-kyselyänne.

Tätä varten käytätte _additional { vector } -lauseketta. Se on hyödyllinen tietojen vianmäärityksessä ja ymmärtämisessä sekä Weaviaten ulkopuolisten mukautettujen toimintojen suorittamisessa.

Vektoriesityksen hakeminen

Näin haette vektoriesityksen muiden ominaisuuksien kanssa. Haemme ensimmäisen löydetyn artikkelin title-ominaisuuden ja vector-vektorin.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Query for a title and its vector
try:
    response = client.query.get("Article", ["title"])
                          .with_additional("vector")
                          .with_limit(1).do()
    print("--- Article Title and Vector ---")
    if response["data"]["Get"]["Article"]:
        article = response["data"]["Get"]["Article"][0]
        print(f"Title: {article['title']}")
        print(f"Vector (first 5 elements): {article['_additional']['vector'][:5]}...")
    else:
        print("No articles found.")
except Exception as e:
    print(f"Error during query: {e}")

Tehokas semanttinen haku

Yksi Weaviaten tärkeimmistä vahvuuksista on semanttinen haku. Se ei etsi vain avainsanoja, vaan löytää dataobjekteja niiden merkityksen perusteella, vaikka täsmällisiä sanoja ei esiintyisi.

Tämä toteutetaan nearText-operaattorilla. Annatte sille tekstimuotoisia "käsitteitä", joiden avulla Weaviate etsii tietokannastanne semanttisesti samankaltaisimmat objektit.

Samankaltaisten artikkeleiden etsiminen

Tehdään semanttinen haku artikkeleista, jotka liittyvät aiheeseen 'machine learning applications'. Huomaatte, miten käytämme with_near_text-toimintoa ja annamme sille kyselymme käsitteet.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Define the concepts for semantic search
concepts = ["machine learning applications"]

# Perform a nearText query
try:
    response = client.query.get("Article", ["title", "content"])
                          .with_near_text({"concepts": concepts})
                          .with_limit(3).do()
    print("--- Articles similar to 'machine learning applications' ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}")
except Exception as e:
    print(f"Error during query: {e}")

GraphQL-kyselyhaaste

Olette oppineet useita tapoja kysellä Weaviateen tallennettuja tietoja GraphQL:n avulla.

Mitä seuraavista GraphQL-kyselyoperaatioista käytetään erityisesti sellaisten dataobjektien etsimiseen, jotka ovat semanttisesti samankaltaisia annetun tekstimuotoisen käsitteen kanssa?

Weaviate-kyselyiden kertaus

Hienoa työtä! Hallitsette nyt Weaviaten tehokkaan GraphQL-rajapinnan perusteet:

  • Get-operaatio hakee dataobjekteja ja niiden ominaisuuksia.
  • where-suodattimella voitte käyttää hauissa tarkkoja ehtoja.
  • Voitte hakea objektin vektoriesityksen erikseen käyttämällä _additional { vector } -lauseketta.
  • nearText-operaattori mahdollistaa semanttisen haun ja löytää kohteita niiden merkityksen perusteella.

Näiden työkalujen avulla voitte hakea ja tutkia vektorimuotoisia tietojanne Weaviatessa tehokkaasti!

Aloita maksutta

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 GraphQL -kyselyt” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Vektoritietokannat: Pinecone, Weaviate ja pgvector-oppimispolun 3 oppituntia, myös oppitunnin “Weaviate GraphQL -kyselyt”. 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 GraphQL -kyselyt”?

Ottakaa haltuun Weaviate-datan kyselyt sen tehokkaan GraphQL-rajapinnan avulla semanttista hakua ja tiedonhakua varten. 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 3/4.

Kuinka kauan ”Weaviate GraphQL -kyselyt”-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

  1. Weaviate-skeeman määrittely
  2. Dataobjektien tuominen
  3. Weaviate GraphQL -kyselyt
  4. Vectorizer-moduulit ja automaattinen embedding
← Takaisin: Vektoritietokannat: Pinecone, Weaviate ja pgvector