Web検索の設定
webSearch 設定では、LibreChat 内のウェブ検索機能(検索プロバイダー、コンテンツスクレイパー、結果の再ランキング機能など)をカスタマイズできます。
概要
ウェブ検索機能は、主に3つのコンポーネントで構成されています。
- Search Providers: 初期ウェブ検索を実行するサービス
- Scrapers: Webページからコンテンツを抽出するサービス
- 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
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | 使用する検索プロバイダーを指定します。 | Options: "serper", "searxng", "tavily" |
serperApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Serper APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${SERPER_API_KEY} |
注: Serper.dev から API キーを取得してください。
searxngInstanceUrl
| Key | Type | Description | Example |
|---|---|---|---|
| searxngInstanceUrl | String | SearXNGインスタンスURLの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${SEARXNG_INSTANCE_URL} |
searxngApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| searxngApiKey | String | SearXNG APIキーの環境変数名。.envに設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${SEARXNG_API_KEY} |
注意: これはオプションであり、お使いの SearXNG インスタンスで認証が必要な場合にのみ必要です。
tavilyApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyApiKey | String | Tavily APIキーの環境変数名。検索とスクレイパーの両方で使用されます。.envに設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${TAVILY_API_KEY} |
注: Tavily から API キーを取得してください。
tavilySearchUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchUrl | String | カスタムTavily Search API URLの環境変数名。オプション。未設定の場合はTavilyホストの検索がデフォルトで使用されます。 | ${TAVILY_SEARCH_URL} |
tavilyExtractUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyExtractUrl | String | カスタムTavily Extract API URL用の環境変数名。オプション。未設定の場合はTavilyホストのextractがデフォルトで使用されます。 | ${TAVILY_EXTRACT_URL} |
tavilySearchOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Tavily検索の設定オプション |
サブキー:
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | 関連性とレイテンシのトレードオフを制御します。「basic」はURLごとに1つのNLP要約を返します。「advanced」はURLごとに複数の意味的に関連するスニペットを返します(2 APIクレジット)。「fast」は速度と関連性のバランスをとったスニペットを返します。「ultra-fast」は1つのNLP要約によりレイテンシを最小化します。 | Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic" |
| maxResults | Number | 返される検索結果の最大数。 | Range: 1-20. Default: 5 |
| topic | String | 検索のカテゴリ。"news" はリアルタイムの更新に、"finance" は財務データに役立ちます。 | Options: "general", "news", "finance". Default: "general" |
| includeImages | Boolean | レスポンスに画像を含めます。トップレベルのクエリ画像と結果ごとの画像の両方を返します。 | Default: false |
| includeAnswer | Boolean or String | LLMが生成した回答を含めます。"basic" または true で簡潔な回答、"advanced" で詳細な回答になります。 | Default: false |
| includeRawContent | Boolean or String | クリーニングおよび解析済みのHTMLコンテンツを含めます。"markdown" または true はMarkdown形式、"text" はプレーンテキスト用です。 | Default: false |
| includeDomains | Array of Strings | 特定のドメインに検索を制限します。最大300ドメインまで。 | |
| excludeDomains | Array of Strings | 結果から特定のドメインを除外します。最大150ドメインまで。 | |
| timeRange | String | 公開日または最終更新日に基づく期間フィルター。 | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | includeImages が true の場合、各画像の説明テキストも追加してください。 | Default: false |
| includeFavicon | Boolean | 各検索結果のfavicon URLを含めます。 | Default: false |
| chunksPerSource | Number | ソースあたりの関連コンテンツチャンクの最大数。searchDepthが"advanced"の場合のみ利用可能です。 | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Tavily Searchリクエスト用のオプションのTavily safe_searchオーバーライドです。デフォルトでは省略されます。trueに設定する場合、Tavily Enterpriseが必要になることがあります。 | Default: omitted |
| timeout | Number | クライアント側のHTTPリクエストタイムアウト(ミリ秒)。Tavily APIの応答を待機し、中断するまでの時間を制御します。 | Default: 15000 |
Scrapers
firecrawlApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiKey | String | Firecrawl APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${FIRECRAWL_API_KEY} |
注: Firecrawl.dev から API キーを取得してください。
firecrawlApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiUrl | String | Firecrawl API URLの環境変数名。 .envに設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${FIRECRAWL_API_URL} |
注: これはオプションであり、カスタムの Firecrawl インスタンスを使用している場合にのみ必要です。
firecrawlVersion
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Firecrawl APIバージョン(v0またはv1)の環境変数名。 | ${FIRECRAWL_VERSION} |
scraperProvider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | 使用するスクレイパーサービスを指定します。 | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Firecrawlスクレイパーの高度な設定オプション |
サブキー:
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | 出力に含めるフォーマット。 |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | 出力に含めるタグ。 |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | 出力から除外するタグ。 |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | リクエストと一緒に送信するヘッダー。Cookieやuser-agentなどを送信するために使用できます。 |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | コンテンツを取得する前にミリ秒単位の遅延を指定し、ページが読み込まれるまでの十分な時間を確保します。 |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | スクレイピングリクエストのタイムアウト(ミリ秒単位)。負ではない整数である必要があります。 | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | ページがこのミリ秒単位の期間より新しい場合、キャッシュされたバージョンを返します。キャッシュされたページのバージョンがこの値より古い場合、ページはスクレイピングされます。 |
注: 非常に新しいデータが必要でない場合、これを有効にすることでスクレイピングを最大500%高速化できます。
mobile
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | モバイルデバイスからのスクレイピングをエミュレートします。 |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | リクエスト送信時にTLS証明書の検証をスキップします。 |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | 広告ブロックおよびクッキーポップアップブロックを有効にします。 |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | 出力からすべてのbase 64画像を削除します。これは非常に長くなる可能性があるためです。画像のaltテキストは出力に残りますが、URLはプレースホルダーに置き換えられます。 |
parsePDF
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | スクレイピング中にPDFファイルがどのように処理されるかを制御します。 |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | trueに設定すると、ページはFirecrawlのインデックスとキャッシュに保存されます。スクレイピング活動にデータ保護上の懸念がある場合は、これをfalseに設定すると便利です。機密性の高いスクレイピングに関連する一部のパラメータ(headersなど)を使用すると、このパラメータは強制的にfalseになります。 |
zeroDataRetention
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | trueに設定すると、このスクレイピングにおけるデータ保持がゼロになります(事前にFirecrawlでの設定が必要です)。 |
location
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | スクレイピングのための地理的な場所と言語設定。 |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | ページヘッダー、ナビゲーション、フッターなどを除いた、ページ内のメインコンテンツのみを返します。 |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | スクレイピングされたコンテンツの変更を追跡するための設定。 |
例:
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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Tavily Extract(スクレイパー)の設定オプション |
サブキー:
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | 抽出プロセスの深度。「advanced」はテーブルや埋め込みコンテンツを含むより多くのデータを高い成功率で取得しますが、レイテンシが増加する可能性があります。「basic」は正常に取得したURL 5件につき1クレジット、「advanced」は正常に取得したURL 5件につき2クレジットを消費します。 | Options: "basic", "advanced". Default: "basic" |
| includeImages | Boolean | レスポンス内のURLから抽出された画像のリストを含めます。 | Default: false |
| includeFavicon | Boolean | 抽出された各結果のfavicon URLを含めます。 | Default: false |
| format | String | 抽出されたWebページコンテンツのフォーマット。"markdown"はコンテンツをMarkdown形式で返します。"text"はプレーンテキストで返し、レイテンシが増加する可能性があります。 | Options: "markdown", "text". Default: "markdown" |
| timeout | Number | ミリ秒単位のタイムアウト。クライアント側の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
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiKey | String | Jina APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${JINA_API_KEY} |
注意: Jina.ai から API キーを取得してください。
jinaApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Jina API URLの環境変数名。 .envに設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${JINA_API_URL} |
注: これはオプションであり、カスタムの Jina インスタンスを使用している場合にのみ必要です。
cohereApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| cohereApiKey | String | Cohere APIキーの環境変数名。 .env に設定されていない場合、ユーザーはUI経由で入力を求められます。 | ${COHERE_API_KEY} |
注: APIキーは Cohere Dashboard から取得してください。
rerankerType
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | 使用するリランカーサービスを指定します。リランキングをスキップするには "none" に設定してください。 | Options: "jina", "cohere", "none" |
一般設定
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | スクレイパーリクエストのタイムアウト(ミリ秒単位)。負ではない整数である必要があります。 | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | セーフサーチのフィルタリングレベル。0 = OFF(フィルタリングなし)、1 = MODERATE(デフォルト)、2 = STRICT(最大レベルのフィルタリング)。 | Default: 1 (MODERATE) |
注: セーフサーチのレベルは、標準的な検索APIの規約に準拠しています。MODERATEフィルタリングがデフォルトで有効になっており、検索の有効性を維持しつつ適切なコンテンツフィルタリングを提供します。Tavilyはこのグローバル設定をデフォルトでは継承しません。Tavilyアカウントが safe_search をサポートしている場合にのみ、tavilySearchOptions.safeSearch を使用してください。
注記
- API keysは、以下の2つの方法で設定できます:
- YAML設定で指定された環境変数を設定します
- 環境変数が設定されていない場合、ユーザーはUI経由でAPIキーを入力するよう求められます。
- この設定は、各コンポーネント(プロバイダー、スクレイパー、リランカー)に対して複数のサービスをサポートしています。
- 特定のサービスタイプが指定されていない場合、システムはそのカテゴリ内の利用可能なすべてのサービスを試行します。
- セーフサーチには、OFF (0)、MODERATE (1)、STRICT (2) という3段階のコンテンツフィルタリングレベルが用意されています。
- Tavilyはデフォルトではグローバルなセーフサーチ設定を継承しません。Tavilyアカウントが
safe_searchをサポートしている場合にのみ、tavilySearchOptions.safeSearchを明示的に設定してください。 - 実際のAPIキーをYAML設定に記述しないでください。環境変数名のみを使用してください。
SearXNG のセットアップ
SearXNGは、セルフホスト可能なプライバシー重視のメタ検索エンジンです。 詳細については、公式SearXNGドキュメントを参照してください。
LibreChatで使用するために独自のSearXNGインスタンスをセットアップする手順は以下の通りです:
Docker Desktop を使用する
-
公式のSearXNGイメージを検索する
- Docker Desktop を開く
- Images タブで
searxng/searxngを検索します - 公式イメージの Run をクリックすると、そのイメージのコンテナが自動的にプルされ、実行されます。
-
コンテナの実行
- ダウンロードが完了した後に表示されるパネルの Optional Settings ドロップダウンを展開します。
- 希望する設定の詳細(ポート番号、コンテナ名など)を設定します。
- Runをクリックしてコンテナを開始します
-
LibreChat 用に SearXNG を設定する
- Docker Desktopの
Filesタブに移動します /etc/searxng/settings.yamlに移動します- ファイルエディターを開く
formatsセクションに移動しますjsonを許容されるフォーマットとして追加し、LibreChat があなたのインスタンスと通信できるようにします。- ファイルを保存
- Docker Desktopの
-
コンテナを再起動します
- 変更を反映させるには、コンテナを再起動してください。
ビデオガイド:
約1分間で最初から最後までの一連の流れを解説する動画はこちらです:
注: この例では、インスタンスのURLは http://localhost:55011 です(ポート番号は動画の左上、コンテナ名の下に表示されています)。
LibreChatでSearXNGを使用するように設定する
LibreChatでは、UI内または librechat.yaml を通じてSearXNGを設定できます。
UI設定
-
チャット入力バーのツール・ドロップダウンを開く

-
Web Searchの横にある歯車アイコンをクリックします

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

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

-
ツール(tools)ドロップダウン内の Web Search オプションをクリックします

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

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