Zacznij terazZacznij za darmo

Wstawianie wektorów na potrzeby wyszukiwania semantycznego

Czas osadzić dane tekstowe i wstawić wektory wraz z metadanymi do indeksu 'pinecone-datacamp'! Otrzymujesz zbiór danych o nazwie squad_dataset.csv, z którego próbka 200 wierszy została wczytana do ramki danych df.

W tym ćwiczeniu, aby korzystać z API OpenAI i ich modelu osadzania, nie musisz tworzyć ani podawać własnego klucza API. Gotowy klient OpenAI został już utworzony i przypisany do zmiennej client.

Twoim zadaniem jest osadzenie tekstu za pomocą API OpenAI, a następnie wstawienie osadzeń i metadanych do indeksu Pinecone w przestrzeni nazw squad_dataset.

To ćwiczenie jest częścią kursu

Tworzenie aplikacji AI z Pinecone

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjuj klienta Pinecone za pomocą swojego klucza API (klient OpenAI jest już dostępny jako client).
  • Wyodrębnij metadane 'id', 'text' oraz 'title' z każdego wiersza row w partii.
  • Zakoduj zmienną texts przy użyciu modelu 'text-embedding-3-small' firmy OpenAI z wymiarowością 1536.
  • Wstaw wektory i metadane do przestrzeni nazw o nazwie 'squad_dataset'.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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=____)
Edytuj i uruchom kod