Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

웹 검색

LibreChat의 웹 검색 기능은 인터넷을 검색하고 관련 정보를 가져와 대화를 향상시킬 수 있도록 합니다. 이 기능은 포괄적인 검색 결과를 제공하기 위해 함께 작동하는 세 가지 주요 구성 요소로 이루어져 있습니다.

빠른 시작

웹 검색을 시작하려면 검색 제공업체 및 스크레이퍼를 위한 API 키를 구성해야 합니다. 리랭킹(Reranking)은 Jina 또는 Cohere를 사용할 수 있으며, rerankerType: "none"으로 설정하여 비활성화할 수도 있습니다. 이를 수행하는 방법은 두 가지가 있습니다:

  1. 환경 변수 (관리자 권장):

    # Search Provider (Required - choose one)
    SERPER_API_KEY=your_serper_api_key
    # or
    SEARXNG_INSTANCE_URL=your_searxng_instance_url
    SEARXNG_API_KEY=your_searxng_api_key  # Optional
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Scraper (Required - choose one)
    FIRECRAWL_API_KEY=your_firecrawl_api_key
    # Optional: Custom Firecrawl API URL
    FIRECRAWL_API_URL=your_firecrawl_api_url
    # Optional: Firecrawl API version (v0 or v1)
    # FIRECRAWL_VERSION=v1
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Reranker (Optional - choose one, or set rerankerType: "none")
    JINA_API_KEY=your_jina_api_key
    # Optional: Custom Jina API URL
    JINA_API_URL=your_jina_api_url
    # or
    COHERE_API_KEY=your_cohere_api_key
  2. 사용자 인터페이스 (환경 변수가 설정되지 않은 경우):

    • 사용자가 웹 검색 기능을 처음 사용할 때 필요한 API 키를 입력하라는 메시지가 표시됩니다.
    • 사용자는 어떤 검색 제공자(Serper, SearXNG 또는 Tavily)와 어떤 리랭커(reranker) 서비스(Jina, Cohere 또는 없음)를 사용할지 선택할 수 있습니다.

API 키 획득

활성화된 각 외부 서비스에는 고유한 API 키가 필요합니다. 키를 얻는 방법은 다음과 같습니다:

검색 제공자

Serper

  1. Serper.dev를 방문하세요
  2. 계정 가입하기
  3. API Key 섹션으로 이동하세요
  4. API 키를 복사하세요
  5. 환경 변수에 설정하거나 UI를 통해 제공하세요.

SearXNG

  1. Web Search Configuration 문서의 설정 지침을 따르세요.
  2. SEARXNG_INSTANCE_URL을 귀하의 인스턴스 URL로 설정하세요
  3. 인스턴스에 인증이 필요한 경우 선택적으로 SEARXNG_API_KEY를 설정하세요.

Tavily

  1. Tavily를 방문하세요
  2. 계정 가입하기
  3. API 키를 복사하세요
  4. 환경 변수에 TAVILY_API_KEY를 설정하거나 UI를 통해 제공하세요.
  5. Tavily는 검색 제공자와 스크래퍼 제공자 모두로 사용할 수 있습니다.

스크레이퍼: Firecrawl

  1. Firecrawl.dev를 방문하세요.
  2. 계정 가입하기
  3. API Key 섹션으로 이동하세요
  4. API 키를 복사하세요
  5. 환경 변수에 설정하거나 UI를 통해 제공하세요.
  6. (선택 사항) 사용자 지정 Firecrawl 인스턴스를 사용하는 경우, API URL도 설정해야 합니다.

Rerankers

Jina

  1. Jina.ai를 방문하세요
  2. 계정 가입하기
  3. API 대시보드로 이동하세요
  4. API 키를 복사하세요
  5. 환경 변수에 설정하거나 UI를 통해 제공하세요.

Cohere

  1. Cohere Dashboard를 방문하세요
  2. 계정 가입하기
  3. API Keys 섹션으로 이동하세요
  4. API 키를 복사하세요
  5. 환경 변수에 설정하거나 UI를 통해 제공하세요.

Components

1. Search Providers

검색 공급자(Search providers)는 초기 웹 검색을 수행하고 관련 결과를 반환하는 역할을 합니다.

사용 가능한 제공업체(Providers):

  • Serper: 고품질 검색 결과를 제공하는 Google Search API
  • SearXNG: 오픈 소스, 자체 호스팅 메타 검색 엔진
    • 자신만의 LibreChat 인스턴스를 직접 호스팅하세요
    • 개인정보 보호 중심의 검색 결과
  • Tavily: AI 최적화 검색 API
    • Tavily에서 API 키를 받으세요.
    • 구성 가능한 검색 깊이, 주제 필터링, 도메인 필터링 등을 지원합니다.
    • 스크레이퍼 제공자로도 사용할 수 있습니다

2. Scrapers

Scrapers는 검색 제공업체가 반환한 웹 페이지에서 실제 콘텐츠를 추출합니다.

사용 가능한 스크레이퍼(Available Scrapers):

  • Firecrawl: 웹 페이지에서 콘텐츠를 추출하는 강력한 웹 스크래핑 서비스

    • Firecrawl.dev에서 API 키를 받으세요.
    • API URL은 선택 사항입니다 (기본값은 Firecrawl의 호스팅 서비스입니다)
  • Tavily: Tavily Extract API를 통한 배치 URL 추출

    • 검색 공급자와 동일한 TAVILY_API_KEY를 사용합니다.
    • 구성 가능한 추출 깊이, 이미지 추출 및 파비콘(favicon) 추출을 지원합니다.

계획된 스크레이퍼:

  • Local Firecrawl: Firecrawl의 자체 호스팅 버전
  • 추가적인 타사 스크래핑 서비스

3. Rerankers

Reranker는 스크랩된 콘텐츠를 분석하여 가장 관련성이 높은 부분을 결정하고 더 나은 결과를 위해 재정렬합니다.

사용 가능한 Reranker:

  • Jina: AI 기반 리랭킹(reranking) 서비스
    • Jina.ai에서 API 키를 받으세요.
    • API URL은 선택 사항입니다 (기본값은 Jina의 호스팅 서비스입니다)
  • Cohere: 고급 리랭킹(reranking) 서비스
  • None: rerankerType"none"으로 설정된 경우 리랭킹(reranking)을 건너뜁니다.

계획된 Reranker:

  • RAG API: RAG(Retrieval-Augmented Generation, 검색 증강 생성)를 사용한 오픈 소스 리랭킹(reranking)
  • 추가적인 타사 리랭킹(reranking) 서비스

구성

관리자 설정

관리자는 환경 변수를 사용하여 웹 검색 기능을 구성할 수 있습니다. YAML 구성을 통해 각 구성 요소에 대한 사용자 지정 환경 변수 이름을 지정할 수 있습니다.

⚠️ 중요: 실제 API 키나 값을 YAML 파일에 넣지 마십시오(작동하지 않습니다). 환경 변수 이름만 사용하십시오.

webSearch:
  # Search Provider Configuration
  serperApiKey: "${CUSTOM_SERPER_API_KEY}"  # ✅ Correct: Using environment variable name
  # serperApiKey: "sk-123..."               # ❌ Wrong: Never put actual API keys here
  # or
  searxngInstanceUrl: "${CUSTOM_SEARXNG_INSTANCE_URL}"  # ✅ Correct: Using environment variable name
  searxngApiKey: "${CUSTOM_SEARXNG_API_KEY}"            # ✅ Correct: Using environment variable name
  # searxngInstanceUrl: "http://..."        # ❌ Wrong: Never put actual URLs here
  # searxngApiKey: "sk-123..."              # ❌ Wrong: Never put actual API keys here

  # Tavily Configuration (search and/or scraper)
  tavilyApiKey: "${CUSTOM_TAVILY_API_KEY}"
  tavilySearchUrl: "${CUSTOM_TAVILY_SEARCH_URL}"
  tavilyExtractUrl: "${CUSTOM_TAVILY_EXTRACT_URL}"

  # Scraper Configuration
  firecrawlApiKey: "${CUSTOM_FIRECRAWL_API_KEY}"
  firecrawlApiUrl: "${CUSTOM_FIRECRAWL_API_URL}"
  # firecrawlApiKey: "fc-123..."            # ❌ Wrong: Never put actual API keys here
  # firecrawlApiUrl: "https://..."          # ❌ Wrong: Never put actual URLs here

  # Reranker Configuration
  jinaApiKey: "${CUSTOM_JINA_API_KEY}"
  jinaApiUrl: "${CUSTOM_JINA_API_URL}"
  cohereApiKey: "${CUSTOM_COHERE_API_KEY}"
  # jinaApiKey: "jn-123..."                 # ❌ Wrong: Never put actual API keys here
  # jinaApiUrl: "https://..."               # ❌ Wrong: Never put actual URLs here
  # cohereApiKey: "ch-123..."               # ❌ Wrong: Never put actual API keys here

  # General Settings
  safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)

참고: YAML 구성에는 환경 변수 이름만 포함되어야 합니다(형식: ${VARIABLE_NAME}). 이러한 유연성을 통해 다음이 가능합니다:

  • 서로 다른 환경에서 서로 다른 변수 이름 사용하기
  • 서로 다른 사용자 그룹을 위한 다중 구성 지원
  • 역할 기반 구성을 통한 향후 통합

시스템이 특정 서비스만 사용하도록 제한하려면 서비스 유형을 지정할 수 있습니다:

webSearch:
  # ... variable configurations ...
  searchProvider: "serper"    # Only use Serper for search
  # searchProvider: "searxng" # Only use SearXNG for search
  # searchProvider: "tavily"  # Only use Tavily for search
  scraperProvider: "firecrawl"    # Only use Firecrawl for scraping
  # scraperProvider: "tavily" # Only use Tavily for scraping
  rerankerType: "jina"        # Options: "jina", "cohere", "none"

사용자 구성

관리자가 필요한 모든 API 키를 구성하지 않은 경우, 사용자는 UI를 통해 이를 입력하라는 메시지를 받게 됩니다. 인터페이스를 통해 사용자는 다음을 수행할 수 있습니다.

  1. 선호하는 리랭커(Jina, Cohere 또는 없음)를 선택하세요
  2. 필요한 서비스에 대한 API 키를 입력하세요
  3. 필요한 경우 Firecrawl API URL을 구성하십시오 (선택 사항)
  4. 필요한 경우 Jina API URL을 구성하세요 (선택 사항)
  5. 필요한 경우 Tavily Search 또는 Extract API URL을 구성하십시오 (선택 사항)

사용법

설정이 완료되면 다음 두 가지 방법으로 웹 검색을 사용할 수 있습니다:

  1. 채팅 인터페이스: 채팅 인터페이스에서 웹 검색 버튼을 클릭하여 대화에 웹 검색을 활성화하세요.
  2. Agents: 에이전트에서 web_search 기능을 사용하여 웹 검색을 수행하도록 설정하세요.

참고 사항

  • 검색 제공자 및 스크레이퍼 설정이 필요합니다. 리랭킹(reranking)은 rerankerType: "none"으로 설정하여 비활성화할 수 있습니다.
  • Firecrawl API URL은 선택 사항이며 기본적으로 호스팅된 서비스로 설정됩니다.
  • Jina API URL은 선택 사항이며, 기본값은 해당 서비스의 호스팅된 서비스로 설정됩니다.
  • Tavily Search 및 Extract API URL은 선택 사항이며 기본적으로 Tavily의 호스팅 서비스를 사용합니다.
  • Safe search는 세 가지 수준의 콘텐츠 필터링을 제공합니다: OFF (0), MODERATE (1 - 기본값), STRICT (2)
  • Tavily는 기본적으로 전역 safeSearch 설정을 상속하지 않습니다. Tavily 계정이 safe_search를 지원하는 경우에만 tavilySearchOptions.safeSearch를 사용하세요.
  • 스크레이퍼 타임아웃은 기본적으로 7.5초(7500ms)로 설정되어 있습니다.
  • API 키는 UI를 통해 언제든지 취소할 수 있습니다.
  • 향후 업데이트에는 모든 구성 요소에 대한 더 많은 오픈 소스 및 자체 호스팅 옵션이 포함될 예정입니다.
  • 다음과 같은 추가 사용자 지정 옵션이 계획되어 있습니다:
    • 스크랩할 링크 수 제어
    • 스크래핑을 위한 도메인 허용 목록/차단 목록
    • 사용자 지정 스크래핑 규칙 및 필터
    • 고급 결과 필터링 및 순위 지정 옵션
    • 속도 제한 및 요청 스로틀링 제어

이 가이드는 어떤가요?