Cấu hình Tìm kiếm Web
Cấu hình webSearch cho phép bạn tùy chỉnh chức năng tìm kiếm web trong LibreChat, bao gồm các nhà cung cấp dịch vụ tìm kiếm, công cụ thu thập nội dung và công cụ xếp hạng lại kết quả.
Tổng quan
Tính năng tìm kiếm web bao gồm ba thành phần chính:
- Search Providers: Các dịch vụ thực hiện tìm kiếm web ban đầu
- Scrapers: Các dịch vụ trích xuất nội dung từ các trang web
- Rerankers: Các dịch vụ sắp xếp lại kết quả tìm kiếm để có độ liên quan tốt hơn
Ví dụ
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)Các nhà cung cấp tìm kiếm
searchProvider
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | Chỉ định nhà cung cấp tìm kiếm sẽ sử dụng. | Options: "serper", "searxng", "tavily" |
serperApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Tên biến môi trường cho khóa API Serper. Nếu không được thiết lập trong .env, người dùng sẽ được yêu cầu cung cấp thông qua giao diện người dùng (UI). | ${SERPER_API_KEY} |
Lưu ý: Lấy khóa API của bạn từ Serper.dev
searxngInstanceUrl
| Key | Type | Description | Example |
|---|---|---|---|
| searxngInstanceUrl | String | Tên biến môi trường cho URL của instance SearXNG. Nếu không được thiết lập trong .env, người dùng sẽ được nhắc cung cấp thông qua giao diện người dùng. | ${SEARXNG_INSTANCE_URL} |
searxngApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| searxngApiKey | String | Tên biến môi trường cho khóa API SearXNG. Nếu không được thiết lập trong .env, người dùng sẽ được yêu cầu cung cấp thông qua giao diện người dùng (UI). | ${SEARXNG_API_KEY} |
Lưu ý: Đây là tùy chọn và chỉ cần thiết nếu instance SearXNG của bạn yêu cầu xác thực.
tavilyApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyApiKey | String | Tên biến môi trường cho khóa API Tavily. Được sử dụng cho cả tìm kiếm và trình thu thập dữ liệu. Nếu không được thiết lập trong .env, người dùng sẽ được nhắc cung cấp thông qua giao diện người dùng. | ${TAVILY_API_KEY} |
Lưu ý: Lấy API key của bạn từ Tavily
tavilySearchUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchUrl | String | Tên biến môi trường cho URL API Tìm kiếm Tavily tùy chỉnh. Tùy chọn; mặc định là tìm kiếm được lưu trữ trên Tavily khi không được thiết lập. | ${TAVILY_SEARCH_URL} |
tavilyExtractUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyExtractUrl | String | Tên biến môi trường cho URL API Tavily Extract tùy chỉnh. Tùy chọn; mặc định sử dụng dịch vụ extract được lưu trữ bởi Tavily khi không được thiết lập. | ${TAVILY_EXTRACT_URL} |
tavilySearchOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Các tùy chọn cấu hình cho tìm kiếm Tavily. |
Các khóa con:
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | Kiểm soát sự cân bằng giữa mức độ liên quan và độ trễ. "basic" trả về một bản tóm tắt NLP cho mỗi URL. "advanced" trả về nhiều đoạn trích liên quan về mặt ngữ nghĩa cho mỗi URL (tốn 2 tín dụng API). "fast" cân bằng giữa tốc độ và mức độ liên quan với các đoạn trích. "ultra-fast" giảm thiểu độ trễ với một bản tóm tắt NLP. | Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic" |
| maxResults | Number | Số lượng kết quả tìm kiếm tối đa được trả về. | Range: 1-20. Default: 5 |
| topic | String | Danh mục của tìm kiếm. "news" hữu ích cho các cập nhật theo thời gian thực. "finance" cho dữ liệu tài chính. | Options: "general", "news", "finance". Default: "general" |
| includeImages | Boolean | Bao gồm hình ảnh trong phản hồi. Trả về cả hình ảnh truy vấn cấp cao nhất và hình ảnh theo từng kết quả. | Default: false |
| includeAnswer | Boolean or String | Bao gồm câu trả lời do LLM tạo. "basic" hoặc true cho câu trả lời nhanh, "advanced" cho câu trả lời chi tiết. | Default: false |
| includeRawContent | Boolean or String | Bao gồm nội dung HTML đã được làm sạch và phân tích cú pháp. "markdown" hoặc true cho định dạng markdown, "text" cho văn bản thuần túy. | Default: false |
| includeDomains | Array of Strings | Giới hạn tìm kiếm trong các tên miền cụ thể. Tối đa 300 tên miền. | |
| excludeDomains | Array of Strings | Loại trừ các tên miền cụ thể khỏi kết quả. Tối đa 150 tên miền. | |
| timeRange | String | Bộ lọc phạm vi thời gian dựa trên ngày xuất bản hoặc ngày cập nhật gần nhất. | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | Khi includeImages là true, hãy thêm cả văn bản mô tả cho mỗi hình ảnh. | Default: false |
| includeFavicon | Boolean | Bao gồm URL favicon cho mỗi kết quả tìm kiếm. | Default: false |
| chunksPerSource | Number | Số lượng đoạn nội dung liên quan tối đa trên mỗi nguồn. Chỉ khả dụng khi searchDepth là "advanced". | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Ghi đè safe_search tùy chọn của Tavily cho các yêu cầu Tìm kiếm Tavily. Mặc định bị bỏ qua; true có thể yêu cầu Tavily Enterprise. | Default: omitted |
| timeout | Number | Thời gian chờ yêu cầu HTTP phía máy khách tính bằng mili giây. Kiểm soát thời gian chờ phản hồi từ Tavily API trước khi hủy bỏ. | Default: 15000 |
Scrapers
firecrawlApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiKey | String | Tên biến môi trường cho khóa API Firecrawl. Nếu không được thiết lập trong .env, người dùng sẽ được nhắc cung cấp khóa này thông qua giao diện người dùng. | ${FIRECRAWL_API_KEY} |
Lưu ý: Lấy khóa API của bạn từ Firecrawl.dev
firecrawlApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiUrl | String | Tên biến môi trường cho URL API Firecrawl. Nếu không được thiết lập trong .env, người dùng sẽ được nhắc cung cấp thông qua giao diện người dùng. | ${FIRECRAWL_API_URL} |
Lưu ý: Đây là tùy chọn và chỉ cần thiết nếu bạn đang sử dụng một instance Firecrawl tùy chỉnh.
firecrawlVersion
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Tên biến môi trường cho phiên bản Firecrawl API (v0 hoặc v1). | ${FIRECRAWL_VERSION} |
scraperProvider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | Chỉ định dịch vụ scraper nào sẽ được sử dụng. | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Các tùy chọn cấu hình nâng cao cho trình thu thập dữ liệu Firecrawl. |
Các khóa con:
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | Các định dạng cần bao gồm trong đầu ra. |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | Các thẻ cần bao gồm trong đầu ra. |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | Các thẻ cần loại trừ khỏi đầu ra. |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | Các tiêu đề (headers) cần gửi kèm theo yêu cầu. Có thể được sử dụng để gửi cookie, user-agent, v.v. |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | Chỉ định độ trễ tính bằng mili giây trước khi tìm nạp nội dung, cho phép trang có đủ thời gian để tải. |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | Thời gian chờ tính bằng mili giây cho yêu cầu thu thập dữ liệu. Phải là một số nguyên không âm. | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | Trả về phiên bản được lưu trong bộ nhớ đệm của trang nếu nó mới hơn khoảng thời gian này tính bằng mili giây. Nếu phiên bản được lưu trong bộ nhớ đệm của trang cũ hơn giá trị này, trang đó sẽ được thu thập lại. |
Lưu ý: Nếu bạn không cần dữ liệu cực kỳ mới, việc bật tính năng này có thể tăng tốc độ thu thập dữ liệu của bạn lên 500%.
mobile
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | Mô phỏng việc thu thập dữ liệu từ thiết bị di động. |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | Bỏ qua xác minh chứng chỉ TLS khi thực hiện các yêu cầu. |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | Bật tính năng chặn quảng cáo và chặn cửa sổ bật lên cookie. |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | Loại bỏ tất cả hình ảnh base 64 khỏi đầu ra, vốn có thể rất dài. Văn bản thay thế (alt text) của hình ảnh vẫn được giữ lại trong đầu ra, nhưng URL sẽ được thay thế bằng một trình giữ chỗ. |
parsePDF
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | Kiểm soát cách các tệp PDF được xử lý trong quá trình thu thập dữ liệu. |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | Nếu được đặt là true, trang sẽ được lưu trữ trong chỉ mục và bộ nhớ đệm của Firecrawl. Việc đặt thành false sẽ hữu ích nếu hoạt động thu thập dữ liệu của bạn có thể liên quan đến các vấn đề bảo vệ dữ liệu. Việc sử dụng một số tham số liên quan đến thu thập dữ liệu nhạy cảm (headers) sẽ buộc tham số này phải là false. |
zeroDataRetention
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | Nếu được đặt là true, tùy chọn này sẽ cho phép không lưu giữ dữ liệu cho quá trình thu thập này (yêu cầu thiết lập trước trên Firecrawl). |
location
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | Vị trí địa lý và cài đặt ngôn ngữ cho việc thu thập dữ liệu. |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | Chỉ trả về nội dung chính của trang, không bao gồm tiêu đề, thanh điều hướng, chân trang, v.v. |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | Cấu hình để theo dõi các thay đổi trong nội dung được thu thập. |
Ví dụ:
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"]Lưu ý: Để biết thông tin chi tiết về các tùy chọn và cài đặt mặc định của trình thu thập dữ liệu Firecrawl, hãy xem Tài liệu API Firecrawl.
tavilyScraperOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Các tùy chọn cấu hình cho Tavily Extract (scraper). |
Các khóa con:
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | Độ sâu của quá trình trích xuất. "advanced" truy xuất nhiều dữ liệu hơn bao gồm bảng và nội dung nhúng với tỷ lệ thành công cao hơn nhưng có thể làm tăng độ trễ. "basic" tốn 1 credit cho mỗi 5 URL thành công, "advanced" tốn 2 credit cho mỗi 5 URL thành công. | Options: "basic", "advanced". Default: "basic" |
| includeImages | Boolean | Bao gồm một danh sách các hình ảnh được trích xuất từ các URL trong phản hồi. | Default: false |
| includeFavicon | Boolean | Bao gồm URL favicon cho mỗi kết quả được trích xuất. | Default: false |
| format | String | Định dạng của nội dung trang web được trích xuất. "markdown" trả về nội dung ở định dạng markdown. "text" trả về văn bản thuần túy và có thể làm tăng độ trễ. | Options: "markdown", "text". Default: "markdown" |
| timeout | Number | Thời gian chờ tính bằng mili giây. Kiểm soát thời gian chờ HTTP phía máy khách. Khi được thiết lập, nó cũng gửi đến Tavily một thời gian chờ trích xuất phía máy chủ đã được chuyển đổi sang giây và giới hạn trong khoảng 1-60 giây. | Default: 15000 for basic, 30000 for advanced |
Ví dụ:
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: basicLưu ý: Để biết thông tin chi tiết về các tùy chọn Tavily API, hãy xem Tavily API Documentation.
Rerankers
jinaApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiKey | String | Tên biến môi trường cho khóa API Jina. Nếu không được thiết lập trong .env, người dùng sẽ được yêu cầu cung cấp khóa này thông qua giao diện người dùng. | ${JINA_API_KEY} |
Lưu ý: Lấy API key của bạn từ Jina.ai
jinaApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Tên biến môi trường cho URL API Jina. Nếu không được thiết lập trong .env, người dùng sẽ được nhắc cung cấp thông qua giao diện người dùng. | ${JINA_API_URL} |
Lưu ý: Đây là tùy chọn và chỉ cần thiết nếu bạn đang sử dụng một instance Jina tùy chỉnh.
cohereApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| cohereApiKey | String | Tên biến môi trường cho khóa API Cohere. Nếu không được thiết lập trong .env, người dùng sẽ được yêu cầu cung cấp thông qua giao diện người dùng. | ${COHERE_API_KEY} |
Lưu ý: Lấy API key của bạn từ Cohere Dashboard
rerankerType
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | Chỉ định dịch vụ reranker nào sẽ được sử dụng. Đặt thành "none" để bỏ qua việc reranking. | Options: "jina", "cohere", "none" |
Cài đặt chung
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | Thời gian chờ tính bằng mili giây cho các yêu cầu trình thu thập dữ liệu. Phải là một số nguyên không âm. | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | Mức lọc tìm kiếm an toàn. 0 = TẮT (không lọc), 1 = TRUNG BÌNH (mặc định), 2 = NGHIÊM NGẶT (lọc tối đa). | Default: 1 (MODERATE) |
Lưu ý: Các cấp độ tìm kiếm an toàn tuân theo các quy ước API tìm kiếm tiêu chuẩn. Bộ lọc MODERATE được bật theo mặc định để cung cấp khả năng lọc nội dung hợp lý trong khi vẫn duy trì hiệu quả tìm kiếm. Tavily không kế thừa cài đặt toàn cục này theo mặc định; chỉ sử dụng tavilySearchOptions.safeSearch nếu tài khoản Tavily của bạn hỗ trợ safe_search.
Ghi chú
- Các API keys có thể được cấu hình theo hai cách:
- Thiết lập các biến môi trường được chỉ định trong cấu hình YAML
- Nếu các biến môi trường không được thiết lập, người dùng sẽ được nhắc cung cấp các khóa API thông qua giao diện người dùng (UI).
- Cấu hình hỗ trợ nhiều dịch vụ cho mỗi thành phần (providers, scrapers, rerankers)
- Nếu một loại dịch vụ cụ thể không được chỉ định, hệ thống sẽ thử tất cả các dịch vụ khả dụng trong danh mục đó
- Safe search cung cấp ba cấp độ lọc nội dung: OFF (0), MODERATE (1) và STRICT (2)
- Tavily không kế thừa cài đặt tìm kiếm an toàn (safe search) toàn cục theo mặc định; hãy đặt
tavilySearchOptions.safeSearchmột cách rõ ràng chỉ khi tài khoản Tavily của bạn hỗ trợsafe_search - Không bao giờ đặt các API key thực tế vào cấu hình YAML - chỉ sử dụng tên biến môi trường
Thiết lập SearXNG
SearXNG là một công cụ tìm kiếm meta tập trung vào quyền riêng tư mà bạn có thể tự lưu trữ (self-host). Để biết thêm thông tin, hãy xem tài liệu chính thức của SearXNG.
Dưới đây là các bước để thiết lập instance SearXNG của riêng bạn để sử dụng với LibreChat:
Sử dụng Docker Desktop
-
Tìm kiếm image SearXNG chính thức
- Mở Docker Desktop
- Tìm kiếm
searxng/searxngtrong tab Images - Nhấp vào Run trên image chính thức để tự động tải xuống và chạy một container của image đó
-
Chạy container
- Mở rộng menu thả xuống Optional Settings trong bảng điều khiển xuất hiện sau khi quá trình tải xuống hoàn tất.
- Thiết lập các chi tiết cấu hình mong muốn của bạn (số cổng, tên container, v.v.)
- Nhấp vào Run để khởi chạy container
-
Cấu hình SearXNG cho LibreChat
- Điều hướng đến tab
Filestrong Docker Desktop - Đi đến
/etc/searxng/settings.yaml - Mở trình chỉnh sửa tệp
- Điều hướng đến phần
formats - Thêm
jsonlàm định dạng chấp nhận được để LibreChat có thể giao tiếp với instance của bạn - Lưu tệp
- Điều hướng đến tab
-
Khởi động lại container
- Khởi động lại container để các thay đổi có hiệu lực
Hướng dẫn bằng video:
Dưới đây là video hướng dẫn bạn thực hiện quy trình từ đầu đến cuối trong khoảng một phút:
Lưu ý: Trong ví dụ này, URL của instance là http://localhost:55011 (số cổng được tìm thấy bên dưới tên container ở góc trên cùng bên trái vào cuối video)
Cấu hình LibreChat để sử dụng SearXNG
Bạn có thể cấu hình SearXNG trong LibreChat thông qua giao diện người dùng hoặc thông qua librechat.yaml.
Cấu hình giao diện (UI)
-
Mở menu thả xuống công cụ trong thanh nhập liệu trò chuyện

-
Nhấp vào biểu tượng bánh răng bên cạnh Web Search

-
Chọn SearXNG từ menu thả xuống Search Provider

-
Nhập chi tiết cấu hình của bạn (ví dụ: URL instance, loại scraper, v.v.) và nhấp vào lưu

-
Nhấp vào tùy chọn Web Search trong menu thả xuống công cụ

-
Huy hiệu Web Search hiện đã được kích hoạt, nghĩa là các truy vấn của bạn giờ đây có thể sử dụng chức năng tìm kiếm trên web

Hướng dẫn này thế nào?