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
Pokyny k cvičení
- Inicializuj Pinecone klienta pomocí svého API klíče (OpenAI klient je už dostupný jako
client). - Z každého
rowv dávce extrahuj metadata'id','text'a'title'. - Zakóduj
textspomocí modelu'text-embedding-3-small'od OpenAI s dimenzionalitou1536. - 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=____)