AI 에이전트 "포럼 검색": 의미 검색 및 임베딩 설정

무엇을 수행했는가

discuss.rabkesov.ru 포럼의 자료를 위한 “포럼 검색” AI 에이전트(ID=5)를 생성했습니다. 이 에이전트는 의미 기반 검색을 지원하며, 인터넷에서 결과를 보강할 수 있습니다.

에이전트

도구

도구 목적 파라미터
Search 의미 기반 + 키워드 검색 max_results=20, search_private=true
Read 토론 게시물 전체 내용 읽기 read_private=true
Researcher 여러 토론 게시물에 대한 심층 분석/합성 max_results=10, LLM=qwen3-VL-8b
WebBrowser 웹 페이지 보기 (인터넷 정보 보강용) -

행동

  1. 각 요청에 대해 포럼 내부에서만 검색 (Search + Read + Researcher)
  2. 각 사실은 토론 게시물/포스트 링크로 인용
  3. 답변 마지막에 질문: “인터넷에서 정보를 추가로 보강하시겠습니까?”
  4. 확인 시 WebBrowser를 사용해 우선순위 있는 사이트를 방문:
  5. 질문 언어로 답변

사용 방법

  • 어떤 토론 게시물에서 @Поиск_по_форуму_bot을 언급
  • 봇에게 개인 메시지 보내기
  • AI-봇 대화를 통해 이용

임베딩 모델 변경: nomic v1.5 → v2-moe

문제

nomic-embed-text-v1.5 모델은 텍스트를 언어별로 그룹화하며, 의미에 따라 그룹화하지 않습니다. 테스트 결과:

코사인 유사도
RU “vLLM 설정” ←→ EN “vLLM 설정” (같은 주제) 0.634
RU “vLLM 설정” ←→ RU “борщ 레시피” (다른 주제) 0.650
의미 차이 (Gap) -0.016

vLLM에 관한 러시아어 텍스트는 vLLM에 관한 영어 텍스트보다 러시아어 레시피 텍스트에 더 가까운 유사도를 보입니다. 이 모델을 사용하면 러시아어 포럼에서 의미 기반 검색이 정확하지 않습니다.

해결책

nomic-embed-text-v2-moe 모델로 변경 (MoE, 8x277M, 512 MB Q8_0, 100+ 언어 지원). 결과:

v1.5 v2-moe
RU “vLLM” ←→ EN “vLLM” (같은 주제) 0.634 0.924
RU “vLLM” ←→ RU “борщ” (다른 주제) 0.650 0.163
의미 차이 (Gap) -0.016 +0.761

임베딩 설정 (최종)

파라미터
ai_embeddings_enabled true
ai_embeddings_selected_model 12 (nomic-embed-text-v2-moe)
ai_embeddings_semantic_search_enabled true
ai_embeddings_semantic_search_use_hyde true
ai_embeddings_semantic_search_hyde_agent -32 (“콘텐츠 작성자”)
ai_embeddings_semantic_quick_search_enabled true

nomic-embed-text-v2-moe 모델은 LM Studio에서 항상 로드되어야 합니다 (~488 MB VRAM). 모델 변경 후에는 Sidekiq가 자동으로 임베딩을 다시 생성합니다.

제한 사항: 웹 검색

Google 검색(완전한 웹 검색)은 사용 불가능합니다. ai_google_custom_search_api_key가 설정되지 않았기 때문입니다. 에이전트는 WebBrowser를 사용해 특정 URL을 방문합니다. 완전한 인터넷 검색을 위해서는:

LLM 서버 로그

경로: ~/.lmstudio/server-logs/YYYY-MM/YYYY-MM-DD.N.log

  • 월별로 폴더를 나누고, 그 안에 날짜별로 분류
  • N은 하루 동안의 로그 회전 번호
  • 예시: ~/.lmstudio/server-logs/2026-03/2026-03-30.1.log