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
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 fichierrowdu lot. - Encodez l'
textss à 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=____)