1. 학습
  2. /
  3. 강의
  4. /
  5. OpenAI API로 시작하는 임베딩 Introduction

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() 함수도 사용할 수 있어요. 이 함수는 텍스트를 받아 각 텍스트에 대한 임베딩이 담긴 리스트의 리스트를 반환한다는 점을 기억하세요. 이전에 생성한 products 딕셔너리와 product_embeddings도 이미 로드되어 있어요.

지침

100 XP
  • query_text에서 쿼리 벡터를 생성하세요.
  • find_n_closest() 함수를 사용해 가장 가까운 다섯 개의 거리와 해당 인덱스를 찾으세요.
  • hits를 순회하며 hits 목록의 각 'index'에 있는 상품을 추출하세요.