Aan de slagGa gratis aan de slag

Upserts batchen en parallel uitvoeren

In deze oefening ga je vectors parallel inladen in de Pinecone-index 'datacamp-index'. Je moet verbinden met de index, vectors asynchroon in batches upserten en de bijgewerkte statistieken van de 'datacamp-index'-index controleren.

De hulpfunctie chunks() die je eerder hebt gemaakt, is nog steeds beschikbaar:

def chunks(iterable, batch_size=100):
    """A helper function to break an iterable into chunks of size batch_size."""
    it = iter(iterable)
    chunk = tuple(itertools.islice(it, batch_size))
    while chunk:
        yield chunk
        chunk = tuple(itertools.islice(it, batch_size))

Deze oefening maakt deel uit van de cursus

Vector-databases voor embeddings met Pinecone

Cursus bekijken

Oefeninstructies

  • Initialiseer de Pinecone-client om 20 gelijktijdige requests toe te staan.
  • Upsert de vectors in vectors in batches van 200 vectors per request, asynchroon, met configuratie voor 20 gelijktijdige requests.
  • Print de bijgewerkte statistieken van de Pinecone-index 'datacamp-index'.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Initialize the client
pc = Pinecone(api_key="____", ____)

index = pc.Index('datacamp-index')

# Upsert vectors in batches of 200 vectors
with pc.Index('datacamp-index', ____) as index:
    async_results = [____(vectors=chunk, ____) for chunk in chunks(vectors, batch_size=____)]
    [async_result.get() for async_result in async_results]

# Retrieve statistics of the connected Pinecone index
print(____)
Code bewerken en uitvoeren