Vektoritietokannat: Pinecone, Weaviate ja pgvector · Oppitunti

Vektoridatan kyselyt Pineconessa

Suorittakaa tehokkaita samankaltaisuushakuja Pineconessa ja hakekaa kyselyn upotukseen perustuvat olennaiset vektorit.

Oppitunti 3/412 vaihetta

Vektoridatan kyselyt Pineconessa 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.

Johdatus Pinecone-kyselyihin

Kun indeksi on määritetty ja tiedot lisätty, seuraava tärkeä vaihe on olennaisten tietojen hakeminen. Tässä kyselyt tulevat mukaan!

Pineconessa kysely tarkoittaa niiden indeksissä olevien vektorien etsimistä, jotka ovat kaikkein samankaltaisimpia annetun "kyselyvektorin" kanssa. Näin toteutetaan semanttista hakua, suosituksia ja paljon muuta.

Kysely vektorina

Aivan kuten tallentamanne tiedot, myös hakukysely on muunnettava vektoriksi. Tätä "kyselyvektoria" verrataan sitten kaikkiin Pinecone-indeksinne vektoreihin.

  • Upotusmalli: Käytätte samaa upotusmallia, jolla tallennetut vektorit luotiin, kyselyvektorin muodostamiseen.
  • Samankaltaisuus: Pinecone laskee kyselyvektorin ja indeksoitujen vektorien välisen etäisyyden tai samankaltaisuuden.

Kyselyn upotuksen luominen

Ennen kuin voitte tehdä kyselyn Pineconessa, tarvitsette hakutermillenne upotuksen. Oletetaan, että haluatte löytää tekstiin "machine learning models" liittyviä asiakirjoja.

Antaisitte tekstin "machine learning models" valitsemanne upotusmallin (esim. OpenAI:n text-embedding-ada-002) käsiteltäväksi vektorimuotoisen esityksen saamiseksi.

Esittelyssä `index.query()`

Pinecone-asiakasohjelma tarjoaa suoraviivaisen kyselymenetelmän: index.query(). Tämä menetelmä toimii väylänä samankaltaisten vektorien löytämiseen.

Usein käytettäviä keskeisiä parametreja:

  • vector: Kyselyn upotus.
  • top_k: Haluttujen samankaltaisten tulosten määrä.
  • include_metadata: Määrittää, palautetaanko siihen liittyvät metatiedot.
  • include_values: Määrittää, palautetaanko vektorin raaka-arvot.

Ensimmäinen Pinecone-kysely

Tehdään yksinkertainen kysely. Käytämme toistaiseksi paikkamerkkivektoria ja oletamme, että se on jo luotu. Muistakaa korvata YOUR_API_KEY ja YOUR_ENVIRONMENT.

import os
from pinecone import Pinecone, Index

# Initialize Pinecone (replace with your actual API key and environment)
# In a real app, use environment variables!
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
pc = Pinecone(api_key=api_key, environment=environment)

index_name = "my-first-index"
index = pc.Index(index_name)

# A dummy query vector (in reality, this would be an embedding)
query_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8] # Example 8-dim vector

# Perform the query
query_results = index.query(
    vector=query_vector,
    top_k=3 # Get the 3 most similar results
)

print("Query Results:")
for match in query_results.matches:
    print(f"ID: {match.id}, Score: {match.score:.2f}")

Kyselyosumien tulkitseminen

query_results-objekti sisältää matches-luettelon. Jokainen osuma edustaa indeksistä löytynyttä samankaltaista vektoria.

  • id: Osuneen vektorin yksilöllinen tunniste.
  • score: Samankaltaisuutta ilmaiseva numeerinen arvo. Suuremmat pisteet (kosinietäisyydellä lähempänä arvoa 1 ja euklidisella etäisyydellä lähempänä arvoa 0) tarkoittavat suurempaa samankaltaisuutta.
  • values: Vektorin raaka-arvot, jos include_values=True.
  • metadata: Liittyvät metatiedot, jos include_metadata=True.

Tulosten rajoittaminen `top_k`-parametrilla

top_k-parametri on tärkeä Pineconen palauttamien tulosten määrän hallinnassa. Se määrittää haettavien lähimpien naapureiden määrän.

  • Jos top_k=1, saatte vain yhden, kaikkein samankaltaisimman vektorin.
  • Jos top_k=10, saatte 10 kaikkein samankaltaisinta vektoria.

Valitkaa top_k sen perusteella, kuinka monta olennaista kohdetta sovelluksenne tarvitsee.

Lisää kontekstia: metatiedot

Usein ette halua pelkkää tunnistetta ja pistemäärää, vaan tarvitsette vektoriin liittyvän alkuperäisen sisällön tai muita ominaisuuksia. Tässä include_metadata on hyödyllinen.

  • Asetuksella include_metadata=True saatte jokaisen vektorin yhteydessä tallennetun metatietosanakirjan.
  • Voitte myös asettaa include_values=True, jolloin saatte osuneen kohteen varsinaisen vektoritaulukon, vaikka tämä on harvinaisempaa perustason haussa.

Kyselyn yhdistäminen suodattimiin (esikatselu)

Pineconessa samankaltaisuushakuja voi tarkentaa lisäämällä suodattimia vektoreihin tallennettujen metatietojen perusteella.

Voisitte esimerkiksi hakea samankaltaisia kohteita vain tietystä luokasta tai tietyn tekijän mukaan.

Perehdymme tehokkaaseen metatietojen suodatukseen tarkemmin myöhemmässä oppitunnissa, mutta muistakaa, että se on täsmällisten hakujen keskeinen ominaisuus.

Käytännön kysely metatietojen avulla

Laajennetaan edellistä esimerkkiä niin, että tuloksiin sisällytetään metatiedot. Jotta tämä toimisi, meidän olisi pitänyt upsertoida metatietoja sisältävät tiedot aiemmassa vaiheessa.

Tässä esimerkissä oletetaan, että indeksissä on vektoreita ja niihin liittyviä metatietoja (esim. {"genre": "sci-fi"}).

import os
from pinecone import Pinecone, Index

# Initialize Pinecone
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
pc = Pinecone(api_key=api_key, environment=environment)

index_name = "my-first-index"
index = pc.Index(index_name)

# A dummy query vector
query_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]

# Perform query, including metadata
query_results = index.query(
    vector=query_vector,
    top_k=2, # Get top 2 results
    include_metadata=True # Request metadata
)

print("Detailed Query Results:")
for match in query_results.matches:
    print(f"ID: {match.id}, Score: {match.score:.2f}, Metadata: {match.metadata}")

Kyselyparametrien tarkistus

Haluatte hakea Pinecone-indeksistänne viisi kaikkein samankaltaisinta vektoria. Lisäksi haluatte nähdä kuhunkin osuneeseen vektoriin liittyvät alkuperäiset metatiedot.

Mitä parametrien yhdistelmää teidän pitäisi käyttää index.query()-kutsussa?

Pinecone-kyselyt: kertaus

Hienoa työtä! Olette oppineet tekemään kyselyitä Pinecone-indeksiinne samankaltaisten vektorien löytämiseksi.

  • Kyselyissä käytetään kyselyvektoria, joka luodaan yleensä samalla upotusmallilla.
  • Käytössä on index.query()-metodi sekä keskeiset parametrit, kuten vector, top_k, include_metadata ja include_values.
  • Tulokset sisältävät id-tunnisteen ja samankaltaisuutta ilmaisevan score-pistemäärän.

Seuraavaksi tutustumme kehittyneempiin tapoihin tarkentaa hakuja!

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

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

Suorittakaa tehokkaita samankaltaisuushakuja Pineconessa ja hakekaa kyselyn upotukseen perustuvat olennaiset vektorit. 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 ”Vektoridatan kyselyt Pineconessa”-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. Pinecone-indeksin luominen
  2. Datan upsert-operaatiot Pineconessa
  3. Vektoridatan kyselyt Pineconessa
  4. Pineconen hinnoittelu ja podit
← Takaisin: Vektoritietokannat: Pinecone, Weaviate ja pgvector