사용자 질문: “배송 상태를 어떻게 확인할 수 있죠?”
이 질문은 먼저 임베딩 처리 과정을 거쳐 벡터로 변환됩니다. 이제서야 벡터 데이터베이스에 다음과 같이 질의를 할 수 있습니다.
코드
POST /search { "query_vector": [0.13, -0.24, 0.33, ..., 0.78], "top_k": 5 }
여기서 "query_vector"는 질문의 벡터 표현이고, "top_k"는 반환 받고자 하는 가장 유사한 문서의 수입니다.
이후부터 벡터 데이터베이스는 가치 있는 역할을 합니다. 바로 저장된 문서 벡터들과 질문 벡터 간의 유사성을 계산하는 것이죠. 유사성 검사는 앞에서 배웠던 코사인 유사도나 유클리드 거리와 같은 것들을 사용합니다. 유사성 검사 결과에 따라 점수가 가장 높은(랭크가 가장 높은) 상위 N개의 벡터들이 반환되고 사용자에게 보여줍니다.