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

Сортування за схожістю

Тепер, коли ви створили вкладення (embeddings — векторні представлення) для всіх своїх ознак, наступний крок — обчислити схожість. У цій вправі ви визначите функцію find_n_closest(), яка обчислює косинусні відстані між вектором запиту та списком вкладень і повертає n найменших відстаней і їхні індекси.

У наступній вправі ви використаєте цю функцію, щоб увімкнути семантичний пошук товарів у вашому застосунку.

distance було імпортовано з scipy.spatial.

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

Вступ до Embeddings з OpenAI API

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

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

  • Обчисліть косинусну відстань між query_vector і embedding.
  • Додайте до списку distances словник, що містить dist і його index.
  • Відсортуйте список distances за ключем 'distance' кожного словника.
  • Поверніть перші n елементи зі списку distances_sorted.

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

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

def find_n_closest(query_vector, embeddings, n=3):
  distances = []
  for index, embedding in enumerate(embeddings):
    # Calculate the cosine distance between the query vector and embedding
    dist = ____
    # Append the distance and index to distances
    distances.append({"distance": ____, "index": ____})
  # Sort distances by the distance key
  distances_sorted = ____
  # Return the first n elements in distances_sorted
  return ____
Редагувати та запускати код