Tìm kiếm Web
Tính năng tìm kiếm web của LibreChat cho phép bạn tìm kiếm trên internet và truy xuất thông tin liên quan để nâng cao các cuộc trò chuyện của mình. Tính năng này bao gồm ba thành phần chính hoạt động cùng nhau để cung cấp kết quả tìm kiếm toàn diện.
Bắt đầu nhanh
Để bắt đầu với tính năng tìm kiếm web, bạn cần cấu hình các API key cho nhà cung cấp dịch vụ tìm kiếm và trình thu thập dữ liệu (scraper). Tính năng xếp hạng lại (reranking) có thể sử dụng Jina hoặc Cohere, hoặc có thể tắt bằng cách đặt rerankerType: "none". Bạn có thể thực hiện việc này theo hai cách:
-
Các biến môi trường (Khuyên dùng cho quản trị viên):
# 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 -
Giao diện người dùng (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 nhập các API key cần thiết khi họ sử dụng tính năng tìm kiếm trên web lần đầu tiên.
- Họ có thể chọn nhà cung cấp dịch vụ tìm kiếm (Serper, SearXNG, hoặc Tavily) và dịch vụ xếp hạng lại (reranker) nào để sử dụng (Jina, Cohere, hoặc không sử dụng).
Lấy API Keys
Mỗi dịch vụ bên ngoài được kích hoạt đều yêu cầu khóa API riêng. Dưới đây là cách để lấy các khóa này:
Các nhà cung cấp tìm kiếm
Serper
- Truy cập Serper.dev
- Đăng ký tài khoản
- Điều hướng đến phần API Key
- Sao chép API key của bạn
- Thiết lập nó trong các biến môi trường của bạn hoặc cung cấp thông qua giao diện người dùng (UI)
SearXNG
- Làm theo các hướng dẫn thiết lập trong tài liệu Web Search Configuration
- Đặt
SEARXNG_INSTANCE_URLthành URL instance của bạn - Tùy chọn thiết lập
SEARXNG_API_KEYnếu instance của bạn yêu cầu xác thực
Tavily
- Truy cập Tavily
- Đăng ký tài khoản
- Sao chép API key của bạn
- Thiết lập
TAVILY_API_KEYtrong các biến môi trường của bạn hoặc cung cấp nó thông qua giao diện người dùng (UI) - Tavily có thể được sử dụng làm cả nhà cung cấp dịch vụ tìm kiếm và nhà cung cấp dịch vụ cào dữ liệu (scraper).
Scraper: Firecrawl
- Truy cập Firecrawl.dev
- Đăng ký tài khoản
- Điều hướng đến phần API Key
- Sao chép API key của bạn
- Thiết lập nó trong các biến môi trường của bạn hoặc cung cấp thông qua giao diện người dùng (UI)
- (Tùy chọn) Nếu bạn đang sử dụng một instance Firecrawl tùy chỉnh, bạn cũng sẽ cần thiết lập API URL
Rerankers
Jina
- Truy cập Jina.ai
- Đăng ký tài khoản
- Điều hướng đến API Dashboard
- Sao chép API key của bạn
- Thiết lập nó trong các biến môi trường của bạn hoặc cung cấp thông qua giao diện người dùng (UI)
Cohere
- Truy cập Cohere Dashboard
- Đăng ký tài khoản
- Điều hướng đến phần API Keys
- Sao chép API key của bạn
- Thiết lập nó trong các biến môi trường của bạn hoặc cung cấp thông qua giao diện người dùng (UI)
Các thành phần
1. Các nhà cung cấp tìm kiếm
Các nhà cung cấp dịch vụ tìm kiếm chịu trách nhiệm thực hiện tìm kiếm web ban đầu và trả về các kết quả liên quan.
Các nhà cung cấp khả dụng:
- Serper: Một Google Search API cung cấp các kết quả tìm kiếm chất lượng cao
- Lấy API key của bạn từ Serper.dev
- SearXNG: Công cụ tìm kiếm meta mã nguồn mở, tự lưu trữ
- Tự lưu trữ phiên bản của riêng bạn
- Kết quả tìm kiếm tập trung vào quyền riêng tư
- Tavily: API tìm kiếm được tối ưu hóa cho AI
- Lấy API key của bạn từ Tavily
- Hỗ trợ độ sâu tìm kiếm có thể cấu hình, lọc chủ đề, lọc tên miền và nhiều tính năng khác
- Cũng có thể đóng vai trò là nhà cung cấp trình thu thập dữ liệu (scraper)
2. Scrapers
Các trình thu thập (scrapers) trích xuất nội dung thực tế từ các trang web được trả về bởi nhà cung cấp dịch vụ tìm kiếm.
Các trình thu thập dữ liệu (Scrapers) khả dụng:
-
Firecrawl: Một dịch vụ cào dữ liệu web mạnh mẽ giúp trích xuất nội dung từ các trang web
- Lấy API key của bạn từ Firecrawl.dev
- API URL là tùy chọn (mặc định là dịch vụ được lưu trữ của Firecrawl)
-
Tavily: Trích xuất URL hàng loạt thông qua Tavily Extract API
- Sử dụng cùng
TAVILY_API_KEYvới nhà cung cấp dịch vụ tìm kiếm - Hỗ trợ cấu hình độ sâu trích xuất, trích xuất hình ảnh và trích xuất favicon
- Sử dụng cùng
Các trình thu thập dữ liệu dự kiến:
- Local Firecrawl: Phiên bản tự lưu trữ của Firecrawl
- Các dịch vụ cào dữ liệu của bên thứ ba bổ sung
3. Rerankers
Rerankers phân tích nội dung đã thu thập để xác định các phần liên quan nhất và sắp xếp lại chúng nhằm đạt được kết quả tốt hơn.
Các Reranker khả dụng:
- Jina: Dịch vụ xếp hạng lại (reranking) được hỗ trợ bởi AI
- Lấy khóa API của bạn từ Jina.ai
- API URL là tùy chọn (mặc định là dịch vụ được lưu trữ của Jina)
- Cohere: Dịch vụ xếp hạng lại (reranking) nâng cao
- Lấy khóa API của bạn từ Cohere Dashboard
- None: Bỏ qua việc xếp hạng lại khi
rerankerTypeđược đặt thành"none"
Các Reranker dự kiến:
- RAG API: Xếp hạng lại (reranking) mã nguồn mở sử dụng RAG (Retrieval-Augmented Generation)
- Các dịch vụ xếp hạng lại (reranking) của bên thứ ba bổ sung
Cấu hình
Cấu hình quản trị viên
Quản trị viên có thể cấu hình tính năng tìm kiếm web bằng cách sử dụng các biến môi trường. Cấu hình YAML cho phép bạn chỉ định tên biến môi trường tùy chỉnh cho từng thành phần.
⚠️ Quan trọng: Không bao giờ đặt các khóa API hoặc giá trị thực tế vào tệp YAML (chúng sẽ không hoạt động) - chỉ sử dụng tên biến môi trường.
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)Lưu ý: Cấu hình YAML chỉ nên chứa các tên biến môi trường (theo định dạng ${VARIABLE_NAME}). Sự linh hoạt này cho phép:
- Sử dụng các tên biến khác nhau trong các môi trường khác nhau
- Hỗ trợ nhiều cấu hình cho các nhóm người dùng khác nhau
- Tích hợp trong tương lai với các cấu hình dựa trên vai trò
Nếu bạn muốn giới hạn hệ thống chỉ sử dụng các dịch vụ cụ thể, bạn có thể chỉ định các loại dịch vụ:
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"Cấu hình người dùng
Nếu quản trị viên chưa cấu hình tất cả các API key cần thiết, người dùng sẽ được nhắc cung cấp chúng thông qua giao diện người dùng (UI). Giao diện này cho phép người dùng:
- Chọn bộ sắp xếp lại (reranker) ưu tiên của họ (Jina, Cohere, hoặc không chọn)
- Nhập các khóa API cho các dịch vụ bắt buộc
- Cấu hình URL API Firecrawl nếu cần (tùy chọn)
- Cấu hình URL API Jina nếu cần (tùy chọn)
- Cấu hình các URL API Tavily Search hoặc Extract nếu cần (tùy chọn)
Cách sử dụng
Sau khi cấu hình, bạn có thể sử dụng tìm kiếm web theo hai cách:
- Giao diện trò chuyện: Nhấp vào nút tìm kiếm web trong giao diện trò chuyện để bật tính năng tìm kiếm web cho cuộc trò chuyện của bạn
- Agents: Sử dụng khả năng
web_searchtrong các agent để cho phép chúng tìm kiếm trên web
Ghi chú
- Cấu hình nhà cung cấp tìm kiếm và trình thu thập dữ liệu là bắt buộc; tính năng xếp hạng lại (reranking) có thể bị vô hiệu hóa với
rerankerType: "none" - URL API Firecrawl là tùy chọn và mặc định sẽ sử dụng dịch vụ được lưu trữ của họ
- URL Jina API là tùy chọn và mặc định sẽ sử dụng dịch vụ được lưu trữ của họ
- Các URL của Tavily Search và Extract API là tùy chọn và mặc định sẽ sử dụng các dịch vụ được lưu trữ của Tavily.
- Safe search cung cấp ba cấp độ lọc nội dung: OFF (0), MODERATE (1 - mặc định) và STRICT (2)
- Tavily không kế thừa cài đặt
safeSearchtoàn cục theo mặc định; chỉ sử dụngtavilySearchOptions.safeSearchnếu tài khoản Tavily của bạn hỗ trợsafe_search - Thời gian chờ của trình thu thập dữ liệu (scraper timeout) được đặt mặc định là 7,5 giây (7500ms)
- Các API key có thể bị thu hồi bất cứ lúc nào thông qua giao diện người dùng (UI)
- Các bản cập nhật trong tương lai sẽ bao gồm nhiều tùy chọn mã nguồn mở và tự lưu trữ hơn cho tất cả các thành phần.
- Các tùy chọn tùy chỉnh bổ sung đang được lên kế hoạch, bao gồm:
- Kiểm soát số lượng liên kết cần thu thập dữ liệu
- Danh sách cho phép/danh sách chặn tên miền để thu thập dữ liệu
- Các quy tắc và bộ lọc cào dữ liệu tùy chỉnh
- Các tùy chọn lọc và xếp hạng kết quả nâng cao
- Các kiểm soát giới hạn tốc độ và điều tiết yêu cầu
Hướng dẫn này thế nào?