로어북 시맨틱 검색
이 가이드에서는 로어북 시맨틱 검색을 설명합니다. 시맨틱 검색을 쓰면 로어북 항목이 정확한 키워드뿐 아니라 의미로도 활성화됩니다. 예를 들어 "sword"를 키로 둔 항목이 "blade"라고 적힌 메시지에도 일치할 수 있습니다. 같은 개념을 여러 다른 낱말로 표현하는 글을 쓴다면 이 기능을 사용하세요.
이 기능은 임베딩으로 동작합니다. 임베딩은 글의 의미를 담아낸 숫자 목록입니다. Marinara는 항목마다 임베딩을 하나씩 저장하며, 이를 벡터라고도 부릅니다. 임베딩을 만드는 작업을 벡터화라고 합니다. 채팅 중에는 Marinara가 최근 메시지를 임베딩한 다음 의미가 가장 가까운 항목을 찾습니다.
시맨틱 검색은 일치를 더해 줄 뿐이며, 키워드는 그대로 동작합니다. 예산을 적용할 때 키워드 일치와 시맨틱 일치의 우선순위는 같습니다. 그래서 일치한 항목이 모두 들어가지 못하면 항목의 Order(순서)가 결정합니다.
시맨틱 검색 설정하기
먼저 임베딩 소스를 준비하고, Vectors(벡터) 스위치를 켠 다음, 벡터화를 실행해야 합니다.
1단계: 임베딩 소스 고르기
시작하기 전에: 임베딩을 제공하는 서비스의 계정이나 내장 모델 중 하나가 필요합니다. 모든 서비스가 임베딩을 제공하지는 않습니다. 쓰는 서비스가 임베딩을 제공하지 않으면 편집기가 임베딩 전용 계정을 고르라고 안내합니다.
방법 1: 임베딩 모델이 있는 계정.
- Connections(연결) 패널을 열고 편집할 계정을 여세요.
- Advanced(고급)를 열고 More(더보기)를 연 다음 Semantic search (embeddings)(시맨틱 검색)를 찾으세요.
text-embedding-3-small같은 임베딩 모델 이름을 입력하세요. 이름을 잘 모르겠다면 서비스의 문서를 찾아보거나, 대신 내장 모델을 사용하세요.- 계정을 저장하세요.
- 확인하려면 Test embedding(임베딩 테스트)을 클릭하세요. Marinara는 먼저 저장한 다음 짧은 샘플을 임베딩하고, "1536 dimensions" 같은 벡터 크기나 서비스가 반환한 오류를 보여 줍니다.
임베딩 요청을 다른 계정의 키와 주소로 보내려면 Embedding provider(임베딩 연결)에서 그 계정을 고르세요. 기본값은 Same as this provider(이 연결과 동일)입니다. 고른 계정에 자체 임베딩 모델이 있으면 Marinara가 그 모델을 씁니다. 없으면 여기에 입력한 모델 이름을 씁니다.
방법 2: 내장 모델. API 키 없이 컴퓨터에서 직접 실행되며, 선택기에서는 이름이 Built-in model(내장 모델)입니다. 다운로드한 뒤에 나타나며, Lite 빌드에서는 보이지 않습니다. 내장 모델 설정을 참고하세요.
자체 설정이 없는 모든 계정에 소스 하나를 기본값으로 쓰려면 Connections를 열고 Embeddings(임베딩) 작업에서 고르세요. 계정에 직접 설정한 값이 계속 우선합니다. 기본 항목인 Marinara's own search(없음, 내장 로컬 모델)는 내장 모델을 대체 모델로 유지합니다.
2단계: Vectors 켜기
새 로어북에서는 시맨틱 검색이 꺼져 있습니다.
- 로어북을 열고 Overview(개요) 탭에 그대로 머무르세요.
- Vectors를 켜세요. 켜면 항목을 의미로도 찾을 수 있습니다. 끄면 키워드는 그대로 동작하고 로어북은 벡터화되지 않습니다.
Vectors가 꺼져 있는 동안에는 패널에 "Semantic search is disabled by the lorebook-level Vectors toggle."이라고 표시됩니다.
3단계: 항목 벡터화하기
- Semantic search (embeddings) 패널의 드롭다운에서 소스를 고르세요. 첫 번째 선택지는 No semantic search(시맨틱 검색 없음)입니다. 그다음이 사용할 수 있을 때만 나타나는 Built-in model이고, 그 뒤로 조건을 만족하는 계정이 이어집니다.
- Vectorize N missing(누락된 N개 벡터화)을 클릭하세요. 예를 들면 "Vectorize 5 missing"입니다.
- 기다리세요. 칩에 "8/12 entries vectorized"처럼 진행 상황이 표시되고, 모두 끝나면 초록색으로 바뀝니다.
작동하지 않는 경우: 임베딩 모델이 설정된 계정이 하나도 없으면 패널에 "No connections with an embedding model configured. Set an Embedding Model on a connection first."라고 표시됩니다. 1단계를 마친 다음 다시 시도하세요.
Semantic search (embeddings) 패널
Vectors를 켜면 Overview 탭에 패널이 나타나며, 다음 설정이 있습니다.
| 설정 | 하는 일 | 기본값 | 범위 |
| Query Messages(쿼리 메시지) | 검색에 쓸 최근 사용자 메시지 수입니다. 0이면 사용할 수 있는 메시지를 모두 씁니다. | 10 | 0에서 100까지 |
| Score Threshold(점수 임계값) | 항목이 활성화되는 데 필요한 유사도입니다. 값이 높을수록 엄격합니다. | 0.3 | 0에서 1까지 |
| Vector Limit(벡터 제한) | 이 로어북이 한 번의 답변에 의미로 추가할 수 있는 최대 항목 수입니다. | 10 | 1에서 100까지 |
Include character context(캐릭터 컨텍스트 포함)는 내 메시지와 별도로 최근 캐릭터 답변도 검색하고, 더 강한 일치를 남깁니다. 텍스트를 추가로 임베딩하며, 기본값은 꺼짐입니다. 이때 Query Messages는 캐릭터 답변에도 적용됩니다.
Score Threshold를 0.2처럼 낮게 두면 더 많은 항목이 통과하지만 엉뚱한 항목이 걸릴 수 있습니다. 0.5처럼 높게 두면 의미가 가까운 항목만 일치합니다. 기본값에서 시작하세요.
Vector Limit은 의미로 일치한 항목만 셉니다. 평소의 토큰 예산도 그대로 적용됩니다.
재벡터화, 삭제, 건너뛰기
- Re-vectorize N entries(항목 N개 재벡터화)는 모든 항목에 벡터가 있을 때 나타납니다. 확인을 거친 뒤 벡터를 전부 다시 만듭니다.
- Re-vectorize all(모두 재벡터화)은 일부 항목에만 벡터가 있을 때 나타납니다. 한 번에 전부 다시 만듭니다.
- Delete vectors(벡터 삭제)는 저장된 벡터만 지웁니다. 항목의 텍스트와 키워드는 그대로 남고, 키워드 일치도 계속 동작합니다.
- 항목의 No Vector(벡터 없음)를 켜면 그 항목을 건너뜁니다. 도움말에 따르면 일괄 벡터화가 이 항목을 건너뛰고 저장된 임베딩도 지웁니다. 이 항목은 키워드로는 계속 활성화됩니다.
임베딩 모델을 바꾼 뒤
저장된 벡터는 그 벡터를 만든 모델에 묶여 있습니다. 모델을 바꾼 뒤에는 Re-vectorize N entries나 Re-vectorize all을 사용해 모든 항목이 같은 모델을 쓰게 하세요. "누락된 항목만" 실행한 결과의 벡터 크기가 다르면 "Embedding dimensions changed. Use Re-vectorize all entries instead of only missing entries before switching embedding models."라는 메시지와 함께 거부됩니다.
오류 없이 조용히 실패하는 경우가 하나 있습니다. 채팅 중에 Marinara는 활성 계정의 임베딩 모델이나, 그 계정의 Embedding provider에 있는 모델로 메시지를 임베딩합니다. 계정에 둘 다 설정되어 있지 않으면 Embeddings 작업의 소스 또는 내장 모델을 씁니다. 그 모델의 벡터 크기가 항목 벡터와 다르면 Marinara는 시맨틱 일치에서 그 항목들을 건너뛰며 오류를 표시하지 않습니다. 채팅에서 쓰는 것과 같은 소스로 벡터화하고, 모델을 바꿀 때마다 다시 벡터화하세요.
시맨틱 검색과 Knowledge Router
로어북이 벡터화되어 있으면 Knowledge Router(지식 라우터) 에이전트도 의미 일치를 써서 후보 목록을 만듭니다. 벡터가 없으면 키워드 일치만 사용합니다. 지식 소스: Retrieval 에이전트와 Router 에이전트를 참고하세요.
관련 가이드
- 로어북 개요
- AI 제공자에 연결하기
- 내장 모델 설정
- 지식 소스: Retrieval 에이전트와 Router 에이전트