始める無料で始める

アップサートを並列にバッチ処理する

この演習では、'datacamp-index' という Pinecone インデックスにベクトルを並列で取り込む練習をします。インデックスへ接続し、ベクトルを非同期でバッチアップサートし、'datacamp-index' インデックスの更新後のメトリクスを確認します。

先ほど作成したヘルパー関数 chunks() は引き続き利用できます。

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

この演習はコースの一部です

Pineconeを使ったAIアプリケーション開発

コースを見る

演習の手順

  • Pinecone クライアントを初期化し、同時リクエスト数を 20 に設定してください。
  • vectors にあるベクトルを、1 リクエストあたり 200 ベクトルのバッチで「非同期」にアップサートし、同時リクエスト数を 20 に設定してください。
  • 'datacamp-index' Pinecone インデックスの更新後のメトリクスを出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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(____)
コードを編集して実行