LoslegenKostenlos loslegen

Vektoren für die semantische Suche hochladen

Jetzt kannst du ein paar Textdaten einbetten und die Vektoren und Metadaten in deinen Index „ 'pinecone-datacamp' “ einfügen! Du hast einen Datensatz namens squad_dataset.csv, und ein Beispiel mit 200 Zeilen wurde in den DataFrame „ df “ geladen.

In dieser Übung musst du keinen eigenen API-Schlüssel erstellen und verwenden, um mit der OpenAI-API zu interagieren und deren Einbettungsmodell zu nutzen . Ein funktionierender OpenAI-Client wurde für dich erstellt und der Variablen „ client “ zugewiesen.

Deine Aufgabe ist es, den Text mithilfe der API von OpenAI einzubetten und die Einbettungen und Metadaten unter dem Namespace „ squad_dataset “ in den Pinecone-Index einzufügen.

Diese Übung ist Teil des Kurses

Vektordatenbanken für Einbettungen mit Pinecone

Kurs anzeigen

Anleitung zur Übung

  • Starte den Pinecone-Client mit deinem API-Schlüssel (der OpenAI-Client ist schon als client verfügbar).
  • Extrahier die Metadaten „ 'id' “, „ 'text' “ und „ 'title' “ aus jedem „ row “ im Stapel.
  • texts mit „ 'text-embedding-3-small' ” von OpenAI und Dimensions 1536 kodieren.
  • Füge die Vektoren und Metadaten in einen Namespace namens „ 'squad_dataset' “ ein.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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=____)
Code bearbeiten und ausführen