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
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 wierszaroww partii. - Zakoduj zmienną
textsprzy 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=____)