1. Learn
  2. /
  3. Курси
  4. /
  5. Вступ до Embeddings з OpenAI API

Connected

вправа

Семантичний пошук товарів

Час застосувати вашу функцію find_n_closest()! Ви протестуєте семантичний пошук товарів на тестовому запиті, розрахувавши відсортований список п'яти найбільш семантично подібних товарів на основі збагачених даних, які ви надали моделі.

Нагадування про функцію find_n_closest(), яку ви створили в попередній вправі:

def find_n_closest(query_vector, embeddings, n=3):
    distances = []
    for index, embedding in enumerate(embeddings):
        distance = spatial.distance.cosine(query_vector, embedding)
        distances.append({"distance": distance, "index": index})
    distances_sorted = sorted(distances, key=lambda x: x["distance"])
    return distances_sorted[0:n]

Функція create_embeddings(), яку ви створили раніше, також доступна. Нагадаємо: вона приймає текст і повертає список списків із вкладеннями (embeddings) для кожного тексту. Словник products і product_embeddings, які ви створили раніше, уже завантажено.

Інструкції

100 XP
  • Створіть вектор запиту з query_text.
  • Знайдіть п'ять найближчих відстаней і їхні індекси за допомогою функції find_n_closest().
  • Пройдіться циклом по hits і дістаньте товар за кожним 'index' у списку hits.