开始使用免费开始使用

为语义搜索进行向量 upsert

现在把部分文本数据转成嵌入向量,并将向量与元数据 upsert 到您的 'pinecone-datacamp' 索引中!我们提供了一个名为 squad_dataset.csv 的数据集,已将其中 200 行样本加载到 DataFrame df

在本练习中,您将通过 OpenAI API 使用其 embedding 模型,无需创建并使用您自己的 API 密钥。 已为您创建有效的 OpenAI 客户端,并赋值给变量 client

您的任务是使用 OpenAI 的 API 对文本进行嵌入,然后将嵌入向量和元数据以命名空间 squad_dataset upsert 到 Pinecone 索引中。

本练习是课程的一部分

使用 Pinecone 构建 AI 应用

查看课程

练习说明

  • 使用您的 API 密钥初始化 Pinecone 客户端(OpenAI 客户端已作为 client 提供)。
  • 从批次中的每个 row 提取 'id''text''title' 元数据。
  • 使用 OpenAI 的 'text-embedding-3-small'texts 编码,向量维度为 1536
  • 将向量和元数据 upsert 到名为 'squad_dataset' 的命名空间。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Initialize the Pinecone client
pc = Pinecone(api_key="____")
index = pc.Index('pinecone-datacamp')

batch_limit = 100

for batch in np.array_split(df, len(df) / batch_limit):
    # Extract the metadata from each row
    metadatas = [{
      "text_id": row['____'],
      "text": row['____'],
      "title": row['____']} for _, row in batch.iterrows()]
    texts = batch['text'].tolist()
    
    ids = [str(uuid4()) for _ in range(len(texts))]
    
    # Encode texts using OpenAI
    response = ____(input=____, model="____")
    embeds = [np.array(x.embedding) for x in response.data]
    
    # Upsert vectors to the correct namespace
    ____(vectors=____(ids, embeds, metadatas), namespace=____)
编辑并运行代码