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

Web検索の設定

webSearch 設定では、LibreChat 内のウェブ検索機能(検索プロバイダー、コンテンツスクレイパー、結果の再ランキング機能など)をカスタマイズできます。

概要

ウェブ検索機能は、主に3つのコンポーネントで構成されています。

  1. Search Providers: 初期ウェブ検索を実行するサービス
  2. Scrapers: Webページからコンテンツを抽出するサービス
  3. Rerankers: 検索結果をより関連性の高い順に並べ替えるサービス

webSearch:
  # Search Provider Configuration
  serperApiKey: "${SERPER_API_KEY}"
  searxngInstanceUrl: "${SEARXNG_INSTANCE_URL}"
  searxngApiKey: "${SEARXNG_API_KEY}"
  searchProvider: "serper" # Options: "serper", "searxng", "tavily"

  # Tavily Configuration (search and/or scraper)
  tavilyApiKey: "${TAVILY_API_KEY}"
  # Optional: custom Tavily-compatible endpoints
  tavilySearchUrl: "${TAVILY_SEARCH_URL}"
  tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"

  # Scraper Configuration
  firecrawlApiKey: "${FIRECRAWL_API_KEY}"
  firecrawlApiUrl: "${FIRECRAWL_API_URL}"
  firecrawlVersion: "${FIRECRAWL_VERSION}"
  scraperProvider: "firecrawl" # Options: "firecrawl", "serper", "tavily"

  # Reranker Configuration
  jinaApiKey: "${JINA_API_KEY}"
  jinaApiUrl: "${JINA_API_URL}"
  cohereApiKey: "${COHERE_API_KEY}"
  rerankerType: "jina" # Options: "jina", "cohere", "none"

  # General Settings
  scraperTimeout: 7500 # Timeout in milliseconds for scraper requests (default: 7500)
  safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)

検索プロバイダー

searchProvider

KeyTypeDescriptionExample
searchProviderString使用する検索プロバイダーを指定します。Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringSerper APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。${SERPER_API_KEY}

注: Serper.dev から API キーを取得してください。

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringSearXNGインスタンスURLの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringSearXNG APIキーの環境変数名。.envに設定されていない場合、ユーザーはUI経由で入力を求められます。${SEARXNG_API_KEY}

注意: これはオプションであり、お使いの SearXNG インスタンスで認証が必要な場合にのみ必要です。

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringTavily APIキーの環境変数名。検索とスクレイパーの両方で使用されます。.envに設定されていない場合、ユーザーはUI経由で入力を求められます。${TAVILY_API_KEY}

注: Tavily から API キーを取得してください。

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringカスタムTavily Search API URLの環境変数名。オプション。未設定の場合はTavilyホストの検索がデフォルトで使用されます。${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringカスタムTavily Extract API URL用の環境変数名。オプション。未設定の場合はTavilyホストのextractがデフォルトで使用されます。${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectTavily検索の設定オプション

サブキー:

KeyTypeDescriptionExample
searchDepthString関連性とレイテンシのトレードオフを制御します。「basic」はURLごとに1つのNLP要約を返します。「advanced」はURLごとに複数の意味的に関連するスニペットを返します(2 APIクレジット)。「fast」は速度と関連性のバランスをとったスニペットを返します。「ultra-fast」は1つのNLP要約によりレイテンシを最小化します。Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumber返される検索結果の最大数。Range: 1-20. Default: 5
topicString検索のカテゴリ。"news" はリアルタイムの更新に、"finance" は財務データに役立ちます。Options: "general", "news", "finance". Default: "general"
includeImagesBooleanレスポンスに画像を含めます。トップレベルのクエリ画像と結果ごとの画像の両方を返します。Default: false
includeAnswerBoolean or StringLLMが生成した回答を含めます。"basic" または true で簡潔な回答、"advanced" で詳細な回答になります。Default: false
includeRawContentBoolean or Stringクリーニングおよび解析済みのHTMLコンテンツを含めます。"markdown" または true はMarkdown形式、"text" はプレーンテキスト用です。Default: false
includeDomainsArray of Strings特定のドメインに検索を制限します。最大300ドメインまで。
excludeDomainsArray of Strings結果から特定のドメインを除外します。最大150ドメインまで。
timeRangeString公開日または最終更新日に基づく期間フィルター。Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanincludeImages が true の場合、各画像の説明テキストも追加してください。Default: false
includeFaviconBoolean各検索結果のfavicon URLを含めます。Default: false
chunksPerSourceNumberソースあたりの関連コンテンツチャンクの最大数。searchDepthが"advanced"の場合のみ利用可能です。Range: 1-3. Default: 3
safeSearchBooleanTavily Searchリクエスト用のオプションのTavily safe_searchオーバーライドです。デフォルトでは省略されます。trueに設定する場合、Tavily Enterpriseが必要になることがあります。Default: omitted
timeoutNumberクライアント側のHTTPリクエストタイムアウト(ミリ秒)。Tavily APIの応答を待機し、中断するまでの時間を制御します。Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringFirecrawl APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。${FIRECRAWL_API_KEY}

注: Firecrawl.dev から API キーを取得してください。

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringFirecrawl API URLの環境変数名。 .envに設定されていない場合、ユーザーはUI経由で入力を求められます。${FIRECRAWL_API_URL}

注: これはオプションであり、カスタムの Firecrawl インスタンスを使用している場合にのみ必要です。

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringFirecrawl APIバージョン(v0またはv1)の環境変数名。${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderString使用するスクレイパーサービスを指定します。Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectFirecrawlスクレイパーの高度な設定オプション

サブキー:

formats

KeyTypeDescriptionExample
formatsArray of Strings出力に含めるフォーマット。

includeTags

KeyTypeDescriptionExample
includeTagsArray of Strings出力に含めるタグ。

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of Strings出力から除外するタグ。

headers

KeyTypeDescriptionExample
headersObjectリクエストと一緒に送信するヘッダー。Cookieやuser-agentなどを送信するために使用できます。

waitFor

KeyTypeDescriptionExample
waitForNumberコンテンツを取得する前にミリ秒単位の遅延を指定し、ページが読み込まれるまでの十分な時間を確保します。

timeout

KeyTypeDescriptionExample
timeoutIntegerスクレイピングリクエストのタイムアウト(ミリ秒単位)。負ではない整数である必要があります。Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberページがこのミリ秒単位の期間より新しい場合、キャッシュされたバージョンを返します。キャッシュされたページのバージョンがこの値より古い場合、ページはスクレイピングされます。

注: 非常に新しいデータが必要でない場合、これを有効にすることでスクレイピングを最大500%高速化できます。

mobile

KeyTypeDescriptionExample
mobileBooleanモバイルデバイスからのスクレイピングをエミュレートします。

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanリクエスト送信時にTLS証明書の検証をスキップします。

blockAds

KeyTypeDescriptionExample
blockAdsBoolean広告ブロックおよびクッキーポップアップブロックを有効にします。

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBoolean出力からすべてのbase 64画像を削除します。これは非常に長くなる可能性があるためです。画像のaltテキストは出力に残りますが、URLはプレースホルダーに置き換えられます。

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanスクレイピング中にPDFファイルがどのように処理されるかを制御します。

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleantrueに設定すると、ページはFirecrawlのインデックスとキャッシュに保存されます。スクレイピング活動にデータ保護上の懸念がある場合は、これをfalseに設定すると便利です。機密性の高いスクレイピングに関連する一部のパラメータ(headersなど)を使用すると、このパラメータは強制的にfalseになります。

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleantrueに設定すると、このスクレイピングにおけるデータ保持がゼロになります(事前にFirecrawlでの設定が必要です)。

location

KeyTypeDescriptionExample
locationObjectスクレイピングのための地理的な場所と言語設定。

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanページヘッダー、ナビゲーション、フッターなどを除いた、ページ内のメインコンテンツのみを返します。

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectスクレイピングされたコンテンツの変更を追跡するための設定。

例:

webSearch:
  firecrawlApiKey: "${FIRECRAWL_API_KEY}"
  firecrawlOptions:
    formats: ["markdown", "rawHtml"]
    includeTags: ["main", "article", ".content"]
    excludeTags: ["nav", "footer", ".ads"]
    waitFor: 2000
    timeout: 10000
    mobile: false
    blockAds: true
    onlyMainContent: true
    location:
      country: "US"
      languages: ["en"]

注: Firecrawl スクレイパーのオプションとデフォルト値に関する詳細については、Firecrawl API Documentation を参照してください。

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectTavily Extract(スクレイパー)の設定オプション

サブキー:

KeyTypeDescriptionExample
extractDepthString抽出プロセスの深度。「advanced」はテーブルや埋め込みコンテンツを含むより多くのデータを高い成功率で取得しますが、レイテンシが増加する可能性があります。「basic」は正常に取得したURL 5件につき1クレジット、「advanced」は正常に取得したURL 5件につき2クレジットを消費します。Options: "basic", "advanced". Default: "basic"
includeImagesBooleanレスポンス内のURLから抽出された画像のリストを含めます。Default: false
includeFaviconBoolean抽出された各結果のfavicon URLを含めます。Default: false
formatString抽出されたWebページコンテンツのフォーマット。"markdown"はコンテンツをMarkdown形式で返します。"text"はプレーンテキストで返し、レイテンシが増加する可能性があります。Options: "markdown", "text". Default: "markdown"
timeoutNumberミリ秒単位のタイムアウト。クライアント側のHTTPタイムアウトを制御します。設定された場合、Tavilyに対して秒単位に変換され、1〜60秒の範囲に制限されたサーバー側の抽出タイムアウトも送信されます。Default: 15000 for basic, 30000 for advanced

例:

webSearch:
  searchProvider: tavily
  scraperProvider: tavily
  tavilyApiKey: "${TAVILY_API_KEY}"
  # Optional: custom Tavily-compatible endpoints
  # tavilySearchUrl: "${TAVILY_SEARCH_URL}"
  # tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"
  tavilySearchOptions:
    searchDepth: basic
    maxResults: 5
    topic: general
  tavilyScraperOptions:
    extractDepth: basic

注: Tavily API オプションの詳細については、Tavily API Documentation を参照してください。

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringJina APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。${JINA_API_KEY}

注意: Jina.ai から API キーを取得してください。

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringJina API URLの環境変数名。 .envに設定されていない場合、ユーザーはUI経由で入力を求められます。${JINA_API_URL}

注: これはオプションであり、カスタムの Jina インスタンスを使用している場合にのみ必要です。

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringCohere APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。${COHERE_API_KEY}

注: APIキーは Cohere Dashboard から取得してください。

rerankerType

KeyTypeDescriptionExample
rerankerTypeString使用するリランカーサービスを指定します。リランキングをスキップするには "none" に設定してください。Options: "jina", "cohere", "none"

一般設定

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerスクレイパーリクエストのタイムアウト(ミリ秒単位)。負ではない整数である必要があります。Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberセーフサーチのフィルタリングレベル。0 = OFF(フィルタリングなし)、1 = MODERATE(デフォルト)、2 = STRICT(最大レベルのフィルタリング)。Default: 1 (MODERATE)

注: セーフサーチのレベルは、標準的な検索APIの規約に準拠しています。MODERATEフィルタリングがデフォルトで有効になっており、検索の有効性を維持しつつ適切なコンテンツフィルタリングを提供します。Tavilyはこのグローバル設定をデフォルトでは継承しません。Tavilyアカウントが safe_search をサポートしている場合にのみ、tavilySearchOptions.safeSearch を使用してください。

注記

  • API keysは、以下の2つの方法で設定できます:
    1. YAML設定で指定された環境変数を設定します
    2. 環境変数が設定されていない場合、ユーザーはUI経由でAPIキーを入力するよう求められます。
  • この設定は、各コンポーネント(プロバイダー、スクレイパー、リランカー)に対して複数のサービスをサポートしています。
  • 特定のサービスタイプが指定されていない場合、システムはそのカテゴリ内の利用可能なすべてのサービスを試行します。
  • セーフサーチには、OFF (0)、MODERATE (1)、STRICT (2) という3段階のコンテンツフィルタリングレベルが用意されています。
  • Tavilyはデフォルトではグローバルなセーフサーチ設定を継承しません。Tavilyアカウントが safe_search をサポートしている場合にのみ、tavilySearchOptions.safeSearch を明示的に設定してください。
  • 実際のAPIキーをYAML設定に記述しないでください。環境変数名のみを使用してください。

SearXNG のセットアップ

SearXNGは、セルフホスト可能なプライバシー重視のメタ検索エンジンです。 詳細については、公式SearXNGドキュメントを参照してください。

LibreChatで使用するために独自のSearXNGインスタンスをセットアップする手順は以下の通りです:

Docker Desktop を使用する

  1. 公式のSearXNGイメージを検索する

    • Docker Desktop を開く
    • Images タブで searxng/searxng を検索します
    • 公式イメージの Run をクリックすると、そのイメージのコンテナが自動的にプルされ、実行されます。
  2. コンテナの実行

    • ダウンロードが完了した後に表示されるパネルの Optional Settings ドロップダウンを展開します。
    • 希望する設定の詳細(ポート番号、コンテナ名など)を設定します。
    • Runをクリックしてコンテナを開始します
  3. LibreChat 用に SearXNG を設定する

    • Docker Desktopの Files タブに移動します
    • /etc/searxng/settings.yaml に移動します
    • ファイルエディターを開く
    • formats セクションに移動します
    • json を許容されるフォーマットとして追加し、LibreChat があなたのインスタンスと通信できるようにします。
    • ファイルを保存
  4. コンテナを再起動します

    • 変更を反映させるには、コンテナを再起動してください。

ビデオガイド:

約1分間で最初から最後までの一連の流れを解説する動画はこちらです:

SearXNG Docker セットアップのチュートリアル

注: この例では、インスタンスのURLは http://localhost:55011 です(ポート番号は動画の左上、コンテナ名の下に表示されています)。

LibreChatでSearXNGを使用するように設定する

LibreChatでは、UI内または librechat.yaml を通じてSearXNGを設定できます。

UI設定

  1. チャット入力バーのツール・ドロップダウンを開く Tools configuration button

  2. Web Searchの横にある歯車アイコンをクリックします Tools configuration section

  3. 検索プロバイダーのドロップダウンからSearXNGを選択します SearXNG dropdown selection

  4. 設定の詳細(インスタンスURL、スクレーパーの種類など)を入力し、保存をクリックします Web検索設定を保存

  5. ツール(tools)ドロップダウン内の Web Search オプションをクリックします チャットインターフェース内の Web search バッジ

  6. Web Searchバッジが有効になり、クエリでWeb検索機能を利用できるようになりました Web search badge confirmation

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