4.4 KiB
Using Tavily Instead of SearxNG
This guide explains how to configure and use Tavily as a replacement for SearxNG in the Perplexica project.
What is Tavily?
Tavily is an AI-native search engine that provides a powerful API for web searches. It's designed to be more focused on AI applications and provides structured data in its responses.
Advantages of Tavily over SearxNG
- AI-Optimized: Tavily is specifically designed for AI applications and provides more relevant results for AI-powered search.
- Structured Data: Results come in a well-structured format that's easy to process.
- AI-Generated Answers: Tavily can generate concise answers to queries based on search results.
- Advanced Search Options: Includes features like search depth control, domain filtering, time-based filtering, and result limiting.
Setup Instructions
-
Get a Tavily API Key:
- Sign up for an account at Tavily
- Navigate to your dashboard and create an API key
-
Configure the API Key:
- Open your
config.toml
file - Add your Tavily API key to the
TAVILY
field under[API_ENDPOINTS]
:[API_ENDPOINTS] TAVILY = "your-tavily-api-key"
- Alternatively, you can set the
TAVILY_API_KEY
environment variable
- Open your
-
Select Tavily as the Search Engine:
- Open your
config.toml
file - Set the
ENGINE
field under[SEARCH]
to"tavily"
:[SEARCH] ENGINE = "tavily"
- Alternatively, you can set the
SEARCH_ENGINE
environment variable to"tavily"
- Open your
-
Verify Configuration:
- The application will now use Tavily for web searches
- You can verify this by checking the console logs, which will show "Using search engine: tavily" when a search is performed
Usage
The Tavily integration is designed to be a drop-in replacement for SearxNG. All existing search functionality will continue to work as before, but with improved results from Tavily.
API Options
The Tavily implementation supports the following options:
topic
: 'general' or 'news' (default: 'general')search_depth
: 'basic' or 'advanced' (default: 'advanced')chunks_per_source
: Number of content chunks to retrieve from each source (1-3, default: 3)max_results
: Maximum number of results to return (default: 10)time_range
: Filter results by time range ('day', 'week', 'month', 'year', 'd', 'w', 'm', 'y')days
: Number of days back from the current date to include (for news topic)include_answer
: Include an AI-generated answer ('basic', 'advanced', or true)include_raw_content
: Include the cleaned and parsed HTML content of each resultinclude_images
: Also perform an image search and include the resultsinclude_image_descriptions
: Add descriptive text for each imageinclude_domains
: Array of domains to include in search resultsexclude_domains
: Array of domains to exclude from search results
Response Format
Tavily returns a structured response with the following fields:
query
: The search query that was executedanswer
: An AI-generated answer to the query (if requested)images
: List of query-related images (if requested)results
: A list of search results, each containing:title
: The title of the search resulturl
: The URL of the search resultcontent
: A short description of the search resultscore
: The relevance score of the search resultraw_content
: The cleaned and parsed HTML content (if requested)
response_time
: Time in seconds it took to complete the request
Troubleshooting
If you encounter any issues:
- Verify your Tavily API key is correctly set in
config.toml
or as an environment variable - Check the application logs for any error messages
- Ensure your Tavily account has sufficient credits/quota for API calls
Switching Between Search Engines
You can easily switch between SearxNG and Tavily by changing the ENGINE
setting in your config.toml
file:
[SEARCH]
ENGINE = "searxng" # Use SearxNG (default)
# or
ENGINE = "tavily" # Use Tavily
You can also use the SEARCH_ENGINE
environment variable to override this setting.
Reverting to SearxNG
If you need to revert to using SearxNG:
- Set the
ENGINE
field under[SEARCH]
in yourconfig.toml
file to"searxng"
:[SEARCH] ENGINE = "searxng"
- Ensure your
SEARXNG
entry is properly configured with a valid SearxNG instance URL