НачатьНачать бесплатно

Загрузка векторов для семантического поиска

Пришло время превратить текстовые данные в эмбеддинги (векторные представления) и загрузить векторы вместе с метаданными в индекс 'pinecone-datacamp'! Вам предоставлен набор данных squad_dataset.csv, из которого уже загружена выборка из 200 строк в DataFrame df.

В этом упражнении для работы с API OpenAI и их моделью эмбеддингов создавать собственный ключ API не нужно. Готовый клиент OpenAI уже создан и доступен в переменной client.

Ваша задача — получить эмбеддинги текста с помощью API OpenAI и загрузить их вместе с метаданными в индекс Pinecone в пространстве имён squad_dataset.

Это упражнение является частью курса

Создание ИИ-приложений с Pinecone

Посмотреть курс

Инструкции к упражнению

  • Инициализируйте клиент Pinecone, используя ваш ключ API (клиент OpenAI уже доступен в переменной client).
  • Извлеките метаданные 'id', 'text' и 'title' из каждой строки row в батче.
  • Закодируйте texts с помощью модели 'text-embedding-3-small' от OpenAI с размерностью 1536.
  • Загрузите векторы и метаданные в пространство имён '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=____)
Редактировать и запускать код