1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Introduction to Embeddings with the OpenAI API

Connected

cvičení

Sémantické vyhledávání produktů

Teď svou funkci find_n_closest() pořádně prověříš! Na testovacím dotazu si vyzkoušíš sémantické vyhledávání produktů – sestavíš seřazený seznam pěti produktů, které jsou sémanticky nejpodobnější zadanému dotazu, a to na základě obohacených dat, která jsi modelu poskytl/a.

Tady je připomenutí funkce find_n_closest(), kterou jsi vytvořil/a v předchozím cvičení:

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]

K dispozici máš také funkci create_embeddings(), kterou jsi vytvořil/a dříve. Ta přijme text a vrátí seznam seznamů s embeddingsy pro každý text. Slovník products a product_embeddings, které jsi vytvořil/a dříve, jsou také načteny.

Pokyny

100 XP
  • Vytvoř vektor dotazu z query_text.
  • Pomocí funkce find_n_closest() najdi pět nejbližších vzdáleností a jejich příslušné indexy.
  • Projdi hits ve smyčce a pro každý 'index' v seznamu hits extrahuj odpovídající produkt.