CommencerCommencer gratuitement

Upserting de vecteurs pour la recherche sémantique

Il est temps d'intégrer certaines données textuelles et d'insérer les vecteurs et les métadonnées dans votre index d''pinecone-datacamp'! Vous avez reçu un ensemble de données nommé squad_dataset.csv, et un échantillon de 200 lignes a été chargé dans le DataFrame, df.

Dans cet exercice, pour interagir avec l'API OpenAI afin d'utiliser leur modèle d'intégration, il n'est pas nécessaire de créer et d'utiliser votre propre clé API. Un client OpenAI valide a été créé pour vous et attribué à la variable client.

Votre tâche consiste à intégrer le texte à l'aide de l'API OpenAI et à insérer les intégrations et les métadonnées dans l'index Pinecone sous l'espace de noms squad_dataset.

Cet exercice fait partie du cours

Bases de données vectorielles pour les intégrations avec Pinecone

Afficher le cours

Instructions

  • Veuillez initialiser le client Pinecone avec votre clé API (le client OpenAI est déjà disponible à l'adresse client).
  • Extrayez les métadonnées 'id', 'text' et 'title' de chaque fichier row du lot.
  • Encodez l'texts s à l'aide de l''text-embedding-3-small' d'OpenAI avec la dimensionnalité 1536.
  • Insérez les vecteurs et les métadonnées dans un espace de noms appelé « 'squad_dataset' ».

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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=____)
Modifier et exécuter le code