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

ウェブ検索

LibreChatのウェブ検索機能を使用すると、インターネットを検索して関連情報を取得し、会話を充実させることができます。この機能は、包括的な検索結果を提供するために連携する3つの主要なコンポーネントで構成されています。

クイックスタート

Web検索を開始するには、検索プロバイダーとスクレイパーのAPIキーを設定する必要があります。リランキングにはJinaまたはCohereを使用できます。また、rerankerType: "none"と設定することで無効化することも可能です。これを行うには2つの方法があります:

  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)を使用するか、およびどのリランカーサービス(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を通じて提供してください。

コンポーネント

1. Search Providers

検索プロバイダーは、最初のウェブ検索を実行し、関連する結果を返す役割を担います。

利用可能なプロバイダー:

  • Serper: 高品質な検索結果を提供するGoogle検索API
    • Serper.dev からAPIキーを取得してください。
  • SearXNG: オープンソースのセルフホスト型メタ検索エンジン
    • 独自のインスタンスをセルフホストする
    • プライバシーを重視した検索結果
  • Tavily: AI最適化検索API
    • Tavily から API キーを取得してください。
    • 設定可能な検索深度、トピックフィルタリング、ドメインフィルタリングなどをサポートしています。
    • スクレイパープロバイダーとしても機能します

2. Scrapers

Scraperは、検索プロバイダーから返されたWebページから実際のコンテンツを抽出します。

利用可能なスクレーパー:

  • Firecrawl: Webページからコンテンツを抽出する強力なウェブスクレイピングサービス

    • Firecrawl.dev からAPIキーを取得してください。
    • API URLはオプションです(デフォルトではFirecrawlのホスト型サービスが使用されます)
  • Tavily: Tavily Extract API を介したバッチ URL 抽出

    • 検索プロバイダーと同じ TAVILY_API_KEY を使用します
    • 設定可能な抽出深度、画像抽出、およびファビコン抽出をサポートしています

計画中のスクレイパー:

  • Local Firecrawl: Firecrawlのセルフホスト版
  • その他のサードパーティ製スクレイピングサービス

3. Rerankers

Rerankersは、スクレイピングされたコンテンツを分析して最も関連性の高い部分を特定し、より良い結果を得るためにそれらを並べ替えます。

利用可能なReranker:

  • Jina: AIを活用したリランキングサービス
    • Jina.ai から API キーを取得してください。
    • API URLはオプションです(デフォルトではJinaのホスト型サービスが使用されます)
  • Cohere: 高度なリランキングサービス
  • None: rerankerType"none" に設定されている場合、リランキングをスキップします。

計画中のReranker:

  • RAG API: RAG (Retrieval-Augmented Generation) を使用したオープンソースの再ランキング (reranking)
  • その他のサードパーティ製リランキングサービス

設定

管理者設定

管理者は環境変数を使用してWeb検索機能を設定できます。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 を設定します(オプション)

使用方法

設定が完了すると、2つの方法でウェブ検索を使用できます。

  1. Chat Interface: チャットインターフェース内のウェブ検索ボタンをクリックすると、会話でウェブ検索を有効にできます。
  2. Agents: エージェントで web_search 機能を使用すると、エージェントがウェブ検索を行えるようになります。

注記

  • 検索プロバイダーとスクレイパーの設定が必須です。リランキングは rerankerType: "none" で無効化できます。
  • Firecrawl API URLはオプションであり、デフォルトではホストされているサービスが使用されます。
  • Jina API URLはオプションであり、デフォルトでは彼らのホスト型サービスが使用されます。
  • Tavily SearchおよびExtract APIのURLはオプションであり、デフォルトではTavilyのホスト型サービスが使用されます。
  • Safe searchは、OFF (0)、MODERATE (1 - デフォルト)、STRICT (2) という3段階のコンテンツフィルタリングを提供します。
  • Tavilyはデフォルトではグローバルな safeSearch 設定を継承しません。Tavilyアカウントが safe_search をサポートしている場合にのみ tavilySearchOptions.safeSearch を使用してください。
  • スクレイパーのタイムアウトはデフォルトで7.5秒(7500ms)に設定されています。
  • APIキーは、UIを通じていつでも取り消すことができます。
  • 今後のアップデートでは、すべてのコンポーネントに対して、より多くのオープンソースかつセルフホスト可能なオプションが含まれる予定です。
  • 追加のカスタマイズオプションが計画されており、以下が含まれます:
    • スクレイピングするリンク数の制御
    • スクレイピング用のドメイン許可リスト/ブロックリスト
    • カスタムスクレイピングルールとフィルター
    • 高度な結果フィルタリングおよびランキングオプション
    • レート制限およびリクエストスロットリングの制御

このガイドはいかがでしたか?