CommencerCommencer gratuitement

Mise à jour des transcriptions YouTube

Dans les exercices suivants, vous allez créer un chatbot capable de répondre à des questions sur des vidéos YouTube en intégrant des transcriptions vidéo et des métadonnées supplémentaires dans votre index 'pinecone-datacamp'.

Pour commencer, vous allez préparer les données à partir du fichier youtube_rag_data.csv fichier et insérez les vecteurs avec toutes leurs métadonnées dans l'index 'pinecone-datacamp'. Les données sont fournies dans le DataFrame youtube_df.

Voici un exemple de transcription issue du DataFrame « youtube_df » :

id: 
35Pdoyi6ZoQ-t0.0

title:
Training and Testing an Italian BERT - Transformers From Scratch #4

text: 
Hi, welcome to the video. So this is the fourth video in a Transformers from Scratch 
mini series. So if you haven't been following along, we've essentially covered what 
you can see on the screen. So we got some data. We built a tokenizer with it...

url: 
https://youtu.be/35Pdoyi6ZoQ

published: 
01-01-2024

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 disponible à l'adresse client).
  • Extrayez les métadonnées 'id', 'text', 'title', 'url' et 'published' de chaque fichier row.
  • Encodez l'texts e à l'aide de l''text-embedding-3-small' d'OpenAI.
  • Insérez les vecteurs et les métadonnées dans un espace de noms appelé « 'youtube_rag_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(youtube_df, len(youtube_df) / batch_limit):
    # Extract the metadata from each row
    metadatas = [{
      "text_id": row['____'],
      "text": row['____'],
      "title": row['____'],
      "url": row['____'],
      "published": 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="text-embedding-3-small")
    embeds = [np.array(x.embedding) for x in response.data]
    
    # Upsert vectors to the correct namespace
    ____(vectors=____(ids, embeds, metadatas), namespace='____')
    
print(index.describe_index_stats())
Modifier et exécuter le code