Semantic Search 핵심 기능 — Cohere Embed와 임베딩

Semantic Search 핵심 기능

Cohere는 임베딩을 이용해 간단한 시맨틱 검색 엔진을 만드는 가이드를 제공해요. 텍스트 임베딩 → 인덱스 구축 → 최근접 이웃 검색 → 시각화 순서로 이뤄져요.

Embed 엔드포인트 사용

이 가이드는 Embed 엔드포인트를 사용해요. Cohere의 임베딩은 언어 간 유사성 검색과 저장 효율을 고려해 설계됐어요.

import cohere

co = cohere.Client(api_key="YOUR_API_KEY")

texts = ["프라임 스테이크 레시피", "고기 굽는 법", "오늘 날씨는?"]
result = co.embed(texts=texts, model="embed-english-v3.0", input_type="search_document")
embeddings = result.embeddings

input_type의 역할

Cohere Embed는 용도에 따라 input_type을 다르게 줘요.

  • search_document: 검색 대상 문서를 임베딩할 때
  • search_query: 검색 질의를 임베딩할 때

질의와 문서를 같은 입력 타입으로 임베딩하면 검색 공간이 어긋날 수 있어서, 구분해서 쓰는 것이 권장돼요.

인덱스와 최근접 이웃

임베딩된 문서는 벡터 인덱스에 넣고, 질의 임베딩으로 최근접 이웃(nearest neighbor)을 찾아요. 수천~수만 건에서는 간단한 브루트포스도 가능하지만, 규모가 커지면 벡터 DB의 ANN 인덱스가 필요해져요.

더 알아보기