1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do osadzeń z OpenAI API

Connected

ćwiczenie

Wyszukiwanie semantyczne produktów

Czas wykorzystać funkcję find_n_closest() w praktyce! Przetestujesz semantyczne wyszukiwanie produktów na przykładowym zapytaniu – obliczysz posortowaną listę pięciu produktów o największym podobieństwie semantycznym, bazując na wzbogaconych danych przekazanych modelowi.

Poniżej przypomnienie funkcji find_n_closest(), którą utworzyłeś w poprzednim ćwiczeniu:

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]

Dostępna jest również funkcja create_embeddings() utworzona wcześniej. Przyjmuje ona tekst i zwraca listę list zawierających osadzenia (embeddings) dla każdego fragmentu tekstu. Wczytane zostały także słownik products oraz product_embeddings utworzone w poprzednich ćwiczeniach.

Instrukcje

100 XP
  • Utwórz wektor zapytania na podstawie query_text.
  • Znajdź pięć najbliższych odległości wraz z odpowiadającymi im indeksami, używając funkcji find_n_closest().
  • Przejdź pętlą po hits i dla każdego elementu wyodrębnij produkt spod klucza 'index' z listy hits.