본문으로 건너뛰기

웹 검색

Libre WebUI는 공급업체 계정이나 상용 검색 API 통합 없이 웹을 검색해 모델에 결과를 전달할 수 있습니다. 검색은 관리자가 선택한 SearXNG 인스턴스를 통해 실행됩니다. 그다음 SearXNG는 집계하는 공개 검색 엔진에 쿼리를 보냅니다. 해당 엔진은 SearXNG 배포에서 온 요청을 관찰하고 자체 로깅, 보존 및 네트워크 정책을 적용할 수 있습니다.

Libre WebUI의 모든 이중 용도 기능과 마찬가지로 기본값은 꺼짐입니다. 관리자가 한 번 활성화해야 하며 그전에는 어디에도 검색 UI가 나타나지 않습니다.

작동 방식

다음 네 요소가 있으며 각 요소는 앞의 요소가 갖춰질 때까지 보이지 않습니다.

  1. 백엔드에서 접근할 수 있는 SearXNG 인스턴스. 번들 비공개 배포 스택에 하나가 포함되어 있으며 JSON API가 활성화된 모든 인스턴스를 사용할 수 있습니다.
  2. 관리자 설정 — 설정 > 연결 > 검색(관리자 전용 탭). SearXNG URL을 설정하고 웹 검색 활성화를 켠 다음 연결 테스트에서 실시간 쿼리로 연결을 검증합니다.
  3. 사용할 수 있는 사용자 — 설정 → 사용자 관리에서 Work 접근 및 모델 다운로드 제어 옆에 있는 웹 검색 카드입니다. 기본값인 꺼짐 상태에서는 검색을 활성화해도 관리자만 사용할 수 있습니다. 켜면 모든 활성 사용자가 이용할 수 있습니다. 백엔드는 모든 요청에서 이를 적용합니다.
  4. 허용된 사용자에게 표시되는 사용별 제어 기능:
    • 채팅 검색: 작성기의 지구본 토글입니다. 켜면 세션 모델이 선택적 최신성 및 카테고리 힌트와 함께 집중된 키워드 쿼리를 계획합니다. 계획에 실패하면 Libre가 원래 메시지를 그대로 사용합니다. 결과는 컨텍스트로 프롬프트에 들어가고 답변에는 번호가 지정된 출처 칩이 표시됩니다. 도구 호출을 지원하지 않는 모델에서도 작동합니다.
    • 채팅 도구: 허용된 도구 지원 모델은 해당 턴에 도구가 활성화되어 있으면 기본 제공 web_search 도구를 호출할 수 있습니다.
    • Work: 네트워크 접근이 켜진 작업은 에이전트 루프에서 web_search 도구를 사용할 수 있습니다. 다른 도구와 마찬가지로 모델이 호출 시점을 결정합니다. 오프라인 작업(네트워크 비활성화)에는 도구가 표시되지 않습니다. 검색 요청 자체가 샌드박스가 아닌 백엔드에서 외부로 나가더라도 마찬가지입니다.

검색이 실패해도 턴은 실패하지 않습니다. 모델이 검색 컨텍스트 없이 답변하고 실행은 계속됩니다.

번들 스택으로 설정하기

deploy/private/docker-compose.yml에는 이미 searxng 서비스가 포함되어 있습니다. 호스트에 공개되지 않는 내부 전용 서비스이고 강화되어 있으며 SEARXNG_URL=http://searxng:8080을 통해 앱에 미리 연결되어 있습니다.

  1. .env에 비밀 값을 추가합니다.

    SEARXNG_SECRET=any-long-random-value
  2. docker compose up -d를 실행합니다.

  3. 관리자로 설정 > 연결 > 검색을 엽니다. 환경에서 URL이 미리 채워져 있습니다. 검색을 활성화하고 연결 테스트를 누릅니다.

자체 SearXNG로 설정하기

접근 가능한 모든 SearXNG 인스턴스를 사용할 수 있지만 한 가지 요구 사항이 있습니다. settings.yml에서 JSON 형식을 활성화해야 합니다. 대부분의 공개 인스턴스는 이를 비활성화합니다.

search:
formats:
- html
- json

그런 다음 Base URL(예: http://127.0.0.1:8888 또는 https://search.example.com)을 설정 > 연결 > 검색에 붙여 넣습니다.

환경 변수

변수기본값용도
SEARXNG_URL설정 안 됨검색 설정에 URL을 미리 입력합니다. 활성화는 여전히 관리자 작업입니다.

설정 자체(활성화 상태와 URL)는 데이터베이스에 저장되므로 재시작 후에도 유지되고 다시 배포하지 않아도 즉시 적용됩니다.

개인정보 보호와 범위

  • 검색은 서버 측에서 실행됩니다. 브라우저는 SearXNG에 직접 연결하지 않습니다. Libre WebUI 자체에는 검색 공급자 계정이 필요하지 않지만, 사용자 지정 SearXNG 배포에서는 자체 자격 증명으로 엔진을 구성할 수 있습니다.
  • 검색어는 Libre WebUI 프로세스를 떠나 SearXNG로 전달된 다음 선택한 업스트림 엔진으로 전달됩니다. 게이트웨이를 자체 호스팅하면 이 구간을 제어할 수 있지만 공개 웹 검색 자체가 로컬 또는 익명으로 바뀌지는 않습니다.
  • 결과 텍스트는 모델 컨텍스트에 도달하기 전에 결과당 500자로 제한됩니다. 관리자는 결과 한도를 1~100에서 선택하며 기본값은 6입니다. http(s) 결과 URL만 유지됩니다.
  • 번들 인스턴스는 스택의 내부 네트워크에서만 접근할 수 있습니다. 이 때문에 속도 제한기가 꺼져 있으므로 외부에 공개하지 마세요.

문제 해결

작성기에 지구본이 없거나 Work에 web_search 도구가 없음. 검색이 활성화되지 않았거나(설정 > 연결 > 검색), 계정에 권한이 없습니다. 일반 사용자는 설정 → 사용자 관리에서 웹 검색 토글을 켜야 합니다.

연결 테스트가 HTTP 403으로 실패함. 인스턴스에서 JSON 형식을 허용하지 않습니다. 위 설명대로 settings.ymlsearch.formatsjson을 추가하고 다시 시작하세요.

연결 테스트에서 서비스에 접근할 수 없음. URL은 브라우저가 아니라 백엔드에서 접근할 수 있어야 합니다. 번들 스택 내부에서는 http://searxng:8080입니다. 컨테이너 내부의 localhost는 컨테이너 자체를 가리킵니다.

답변에서 결과를 무시함. 어떤 내용을 사용할지는 여전히 모델이 결정합니다. 작은 모델은 질문이 구체적일수록 삽입된 컨텍스트를 더 잘 따릅니다. 답변 아래 출처에는 항상 검색된 내용이 표시됩니다.