This guide covers the optional features and their configuration in Morphic.
Follow the detailed setup guide at Building your own RAG chatbot with Upstash
- Create a database at Upstash Console
- Navigate to the Details tab and find the "Connect your database" section
- Copy the REST API credentials from the .env section
- Configure your
.env.local:
NEXT_PUBLIC_ENABLE_SAVE_CHAT_HISTORY=true
USE_LOCAL_REDIS=false
UPSTASH_REDIS_REST_URL=[YOUR_UPSTASH_REDIS_REST_URL]
UPSTASH_REDIS_REST_TOKEN=[YOUR_UPSTASH_REDIS_REST_TOKEN]- Ensure Redis is installed and running locally
- Configure your
.env.local:
NEXT_PUBLIC_ENABLE_SAVE_CHAT_HISTORY=true
USE_LOCAL_REDIS=true
LOCAL_REDIS_URL=redis://localhost:6379SearXNG can be used as an alternative search backend with advanced search capabilities.
- Set up SearXNG as your search provider:
SEARCH_API=searxng
SEARXNG_API_URL=http://localhost:8080
SEARXNG_SECRET="" # generate with: openssl rand -base64 32- Ensure you have Docker and Docker Compose installed
- Two configuration files are provided in the root directory:
searxng-settings.yml: Contains main configuration for SearXNGsearxng-limiter.toml: Configures rate limiting and bot detection
- Configure environment variables in your
.env.local:
# SearXNG Base Configuration
SEARXNG_PORT=8080
SEARXNG_BIND_ADDRESS=0.0.0.0
SEARXNG_IMAGE_PROXY=true
# Search Behavior
SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'
SEARXNG_MAX_RESULTS=50 # Maximum number of results to return
SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # Comma-separated list of search engines
SEARXNG_TIME_RANGE=None # Time range: day, week, month, year, or None
SEARXNG_SAFESEARCH=0 # 0: off, 1: moderate, 2: strict
# Rate Limiting
SEARXNG_LIMITER=false # Enable to limit requests per IPSEARXNG_DEFAULT_DEPTH: Controls search depthbasic: Standard searchadvanced: Includes content crawling and relevance scoring
SEARXNG_MAX_RESULTS: Maximum results to returnSEARXNG_CRAWL_MULTIPLIER: In advanced mode, determines how many results to crawl- Example: If
MAX_RESULTS=10andCRAWL_MULTIPLIER=4, up to 40 results will be crawled
- Example: If
You can modify searxng-settings.yml to:
- Enable/disable specific search engines
- Change UI settings
- Adjust server options
Example of disabling specific engines:
engines:
- name: wikidata
disabled: trueFor detailed configuration options, refer to the SearXNG documentation
- If specific search engines aren't working, try disabling them in
searxng-settings.yml - For rate limiting issues, adjust settings in
searxng-limiter.toml - Check Docker logs for potential configuration errors:
docker-compose logs searxngModels are configured in public/config/models.json. Each model requires its corresponding API key to be set in the environment variables.
The models.json file contains an array of model configurations with the following structure:
{
"models": [
{
"id": "model-id",
"name": "Model Name",
"provider": "Provider Name",
"providerId": "provider-id",
"enabled": true,
"toolCallType": "native|manual",
"toolCallModel": "tool-call-model-id" // optional, only needed if toolCallType is "manual" and you need to specify a different model for tool calls
}
]
}GOOGLE_GENERATIVE_AI_API_KEY=[YOUR_API_KEY]ANTHROPIC_API_KEY=[YOUR_API_KEY]GROQ_API_KEY=[YOUR_API_KEY]OLLAMA_BASE_URL=http://localhost:11434AZURE_API_KEY=[YOUR_API_KEY]
AZURE_RESOURCE_NAME=[YOUR_RESOURCE_NAME]DEEPSEEK_API_KEY=[YOUR_API_KEY]FIREWORKS_API_KEY=[YOUR_API_KEY]XAI_API_KEY=[YOUR_XAI_API_KEY]OPENAI_COMPATIBLE_API_KEY=[YOUR_API_KEY]
OPENAI_COMPATIBLE_API_BASE_URL=[YOUR_API_BASE_URL]NEXT_PUBLIC_ENABLE_SHARE=trueSERPER_API_KEY=[YOUR_API_KEY]JINA_API_KEY=[YOUR_API_KEY]