Začněte nyníZačněte zdarma

Vkládání vektorů pro sémantické vyhledávání

Čas převést textová data na vektory a vložit je spolu s metadaty do indexu 'pinecone-datacamp'! Máš k dispozici dataset squad_dataset.csv – do DataFrame df byl načten vzorek 200 řádků.

V tomto cvičení nepotřebuješ vytvářet vlastní API klíč pro práci s OpenAI API a jejich embeddovacím modelem. Platný OpenAI klient už je připravený a přiřazený do proměnné client.

Tvým úkolem je převést text na embeddingy pomocí OpenAI API a vložit embeddingy spolu s metadaty do Pinecone indexu v namespace squad_dataset.

Toto cvičení je součástí kurzu

Tvorba AI aplikací s Pinecone

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj Pinecone klienta pomocí svého API klíče (OpenAI klient je už dostupný jako client).
  • Z každého row v dávce extrahuj metadata 'id', 'text' a 'title'.
  • Zakóduj texts pomocí modelu 'text-embedding-3-small' od OpenAI s dimenzionalitou 1536.
  • Vlož vektory a metadata do namespace s názvem 'squad_dataset'.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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=____)
Upravit a spustit kód