ПочатиПочніть безкоштовно

Upsert векторів для семантичного пошуку

Час створити вкладення (embeddings — векторні представлення) для текстових даних і додати вектори та метадані до вашого індексу 'pinecone-datacamp'! Вам надано набір даних squad_dataset.csv, а вибірку з 200 рядків завантажено в датафрейм df.

У цій вправі, щоб працювати з OpenAI API та використати їхню модель для створення вкладень, вам не потрібно створювати й використовувати власний ключ API. Для вас уже створено чинний клієнт OpenAI і присвоєно змінній client.

Ваше завдання — отримати вкладення тексту за допомогою API OpenAI та виконати upsert вкладень і метаданих в індекс Pinecone в просторі імен squad_dataset.

Ця вправа є частиною курсу

Створення AI‑застосунків із Pinecone

Переглянути курс

Інструкції до вправи

  • Ініціалізуйте клієнт Pinecone із вашим ключем API (клієнт OpenAI уже доступний як client).
  • Витягніть метадані 'id', 'text' і 'title' з кожного row у пакеті.
  • Закодуйте texts, використовуючи модель OpenAI 'text-embedding-3-small' із розмірністю 1536.
  • Виконайте upsert векторів і метаданих у простір імен 'squad_dataset'.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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=____)
Редагувати та запускати код