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.
Note: Ollama models are discovered dynamically at runtime when an Ollama server is available. Only models that expose the
toolscapability will appear in Morphic, so you no longer need to keep placeholder Ollama entries inmodels.json.
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:11434When this variable is set, Morphic will automatically discover Ollama models that advertise the tools capability. Models without this capability are ignored, and no static configuration in models.json is required unless you need to override specific settings.
AZURE_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]