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:6379
SearXNG 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 IP
SEARXNG_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=10
andCRAWL_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: true
For 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 searxng
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:11434
AZURE_API_KEY=[YOUR_API_KEY]
AZURE_RESOURCE_NAME=[YOUR_RESOURCE_NAME]
NEXT_PUBLIC_AZURE_DEPLOYMENT_NAME=[YOUR_DEPLOYMENT_NAME]
Note: Deepseek function calling is currently unstable: vercel/ai#4313 (comment) If you want to use Deepseek, remove the comment and add it to the models array: https://github.com/miurla/morphic/blob/main/lib/types/models.ts
# DEEPSEEK_API_KEY=[YOUR_API_KEY]
NEXT_PUBLIC_ENABLE_SHARE=true
SERPER_API_KEY=[YOUR_API_KEY]
JINA_API_KEY=[YOUR_API_KEY]