IniziaInizia gratis

Eseguire upsert in parallelo a batch

In questo esercizio metterai in pratica l'ingestione di vettori nell'indice Pinecone 'datacamp-index' in parallelo. Dovrai connetterti all'indice, eseguire l'upsert dei vettori in batch in modo asincrono e verificare le metriche aggiornate dell'indice 'datacamp-index'.

La funzione di supporto chunks() che hai creato in precedenza è ancora disponibile:

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))

Questo esercizio fa parte del corso

Database vettoriali per Embeddings con Pinecone

Visualizza il corso

Istruzioni dell'esercizio

  • Inizializza il client Pinecone per consentire 20 richieste simultanee.
  • Esegui l'upsert dei vettori in vectors in batch da 200 vettori per richiesta in modo asincrono, configurando 20 richieste simultanee.
  • Stampa le metriche aggiornate dell'indice Pinecone 'datacamp-index'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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(____)
Modifica ed esegui il codice