1 line
236 KiB
JSON
1 line
236 KiB
JSON
{"repo": "ajwestfield/supergpt", "files": {"README.md": {"25ef643cd33f3948c5f3f2ba537913af1569795b": {"t": 1785747232.8994813, "n": 4349, "h": "01d158aec715ab12", "c": "# SuperGPT\n\nAn AI-powered search engine with a generative UI based on the Morphic project.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🔎 [Current Configuration](#-current-configuration)\n- ⏪ [How to Revert](#-how-to-revert)\n- 🌐 [Deploy](#-deploy)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Enabled)\n- Share search results (Enabled)\n- Redis support (Local)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default - Currently configured)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration (Currently configured) with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider\n- [SearXNG](https://docs.searxng.org/) - Currently configured search provider\n\n### Data Storage\n\n- [Redis](https://redis.io/) - Local Redis for chat history\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🔎 Current Configuration\n\nThe application is currently configured with:\n\n1. **OpenAI Integration**\n - API Key: Configured in .env.local\n - Models available: All OpenAI models\n\n2. **SearXNG Search Provider**\n - Running locally via Docker on port 8080\n - Configured with Google, Bing, DuckDuckGo, and Wikipedia engines\n - Maximum results: 50\n - Default search depth: basic\n\n3. **Chat History**\n - Enabled with local Redis storage\n - Share functionality enabled\n\n4. **Docker Configuration**\n - Modified to run SearXNG and Redis only\n - Original morphic service removed for local development\n\n## ⏪ How to Revert\n\nTo revert to this exact working version:\n\n```bash\n# Clone the repository\ngit clone https://github.com/AjWestfield/SuperGPT.git\n\n# Navigate to the directory\ncd SuperGPT\n\n# Checkout the tagged version\ngit checkout websearch-and-openai-working\n\n# Copy environment template\ncp .env.local.example .env.local\n\n# Edit .env.local with your API keys:\n# - OPENAI_API_KEY=your_openai_key\n# - TAVILY_API_KEY=your_tavily_key (though SearXNG is configured as primary)\n\n# Configure SearXNG settings in .env.local:\n# - SEARCH_API=searxng\n# - SEARXNG_SECRET=generate_a_secret_with_openssl_rand_-base64_32\n# - Other SearXNG settings are pre-configured\n\n# Start Docker containers for Redis and SearXNG\ndocker compose up -d\n\n# Install dependencies\nbun install\n\n# Start the application\nbun dev\n```\n\nThe application should now be accessible at http://localhost:3000 (or next available port).\n\n## 🌐 Deploy\n\nHost your own live version of SuperGPT with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAjWestfield%2FSuperGPT)\n\nWhen deploying to Vercel, ensure that:\n1. Your API keys are added to environment variables\n2. For SearXNG, either configure a publicly accessible SearXNG instance or switch to Tavily\n\n### Docker\n\nFor Docker deployment, use the included docker-compose.yaml file:\n\n```bash\ndocker compose up -d\n```\n\nThis will start the Redis and SearXNG containers. The SearXNG settings are already configured in the .env.local file."}, "b5d0c6642f69e3d2777b102e402e0f875bad066f": {"t": 1785771562.503475, "n": 4349, "h": "01d158aec715ab12", "c": "# SuperGPT\n\nAn AI-powered search engine with a generative UI based on the Morphic project.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🔎 [Current Configuration](#-current-configuration)\n- ⏪ [How to Revert](#-how-to-revert)\n- 🌐 [Deploy](#-deploy)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Enabled)\n- Share search results (Enabled)\n- Redis support (Local)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default - Currently configured)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration (Currently configured) with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider\n- [SearXNG](https://docs.searxng.org/) - Currently configured search provider\n\n### Data Storage\n\n- [Redis](https://redis.io/) - Local Redis for chat history\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🔎 Current Configuration\n\nThe application is currently configured with:\n\n1. **OpenAI Integration**\n - API Key: Configured in .env.local\n - Models available: All OpenAI models\n\n2. **SearXNG Search Provider**\n - Running locally via Docker on port 8080\n - Configured with Google, Bing, DuckDuckGo, and Wikipedia engines\n - Maximum results: 50\n - Default search depth: basic\n\n3. **Chat History**\n - Enabled with local Redis storage\n - Share functionality enabled\n\n4. **Docker Configuration**\n - Modified to run SearXNG and Redis only\n - Original morphic service removed for local development\n\n## ⏪ How to Revert\n\nTo revert to this exact working version:\n\n```bash\n# Clone the repository\ngit clone https://github.com/AjWestfield/SuperGPT.git\n\n# Navigate to the directory\ncd SuperGPT\n\n# Checkout the tagged version\ngit checkout websearch-and-openai-working\n\n# Copy environment template\ncp .env.local.example .env.local\n\n# Edit .env.local with your API keys:\n# - OPENAI_API_KEY=your_openai_key\n# - TAVILY_API_KEY=your_tavily_key (though SearXNG is configured as primary)\n\n# Configure SearXNG settings in .env.local:\n# - SEARCH_API=searxng\n# - SEARXNG_SECRET=generate_a_secret_with_openssl_rand_-base64_32\n# - Other SearXNG settings are pre-configured\n\n# Start Docker containers for Redis and SearXNG\ndocker compose up -d\n\n# Install dependencies\nbun install\n\n# Start the application\nbun dev\n```\n\nThe application should now be accessible at http://localhost:3000 (or next available port).\n\n## 🌐 Deploy\n\nHost your own live version of SuperGPT with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAjWestfield%2FSuperGPT)\n\nWhen deploying to Vercel, ensure that:\n1. Your API keys are added to environment variables\n2. For SearXNG, either configure a publicly accessible SearXNG instance or switch to Tavily\n\n### Docker\n\nFor Docker deployment, use the included docker-compose.yaml file:\n\n```bash\ndocker compose up -d\n```\n\nThis will start the Redis and SearXNG containers. The SearXNG settings are already configured in the .env.local file."}, "cb13774aa8f1bddfe7432310903c4208cc1e6829": {"t": 1785771564.3250372, "n": 6058, "h": "fac53af314218fa7", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- 👥 [Contributing](#-contributing)\n\n📝 Explore AI-generated documentation on [DeepWiki](https://deepwiki.com/miurla/morphic)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4.1\n - gpt-4.1-mini\n - gpt-4.1-nano\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n - Llama 4 Maverick 17B\n- Fireworks\n - DeepSeek R1\n - Llama 4 Maverick\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n - grok-3-beta\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "7ced90cf4f6e748ecdaa8205bf7628f07b4f02c2": {"t": 1785771565.7802625, "n": 5969, "h": "9cbc824f2966fc9b", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4.1\n - gpt-4.1-mini\n - gpt-4.1-nano\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n - Llama 4 Maverick 17B\n- Fireworks\n - DeepSeek R1\n - Llama 4 Maverick\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n - grok-3-beta\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "502e476502fd13215aeac212e35daf7aeebe5964": {"t": 1785771566.9653587, "n": 6091, "h": "c496e931a18511ba", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4.1\n - gpt-4.1-mini\n - gpt-4.1-nano\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n - Llama 4 Maverick 17B\n- Fireworks\n - DeepSeek R1\n - Llama 4 Maverick\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n - grok-3-beta\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "870b62862a746fd77364a4ac4badf2bc0c23c192": {"t": 1785771568.373226, "n": 7474, "h": "501a53757a8ce9d4", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4.1\n - gpt-4.1-mini\n - gpt-4.1-nano\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n - Llama 4 Maverick 17B\n- Fireworks\n - DeepSeek R1\n - Llama 4 Maverick\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n - grok-3-beta\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "52a709abef5ea6c8d5fc79c20cccdde09ff0d607": {"t": 1785771570.311111, "n": 7428, "h": "5ceec244f01b2823", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n - Llama 4 Maverick 17B\n- Fireworks\n - DeepSeek R1\n - Llama 4 Maverick\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n - grok-3-beta\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "ce67a8421139fc96f7b340e49cfe84da3a3d9cf8": {"t": 1785771572.6260183, "n": 7338, "h": "4933c6c18f88a7bf", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.5 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "ae066b6b2a99fb487708904335d980a68c0e7b08": {"t": 1785771573.7775333, "n": 7338, "h": "d7cfd9563107486a", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `public/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "babdb0844e10e10f5dfdecd325f1209b3a4fc6f2": {"t": 1785771575.1285965, "n": 7336, "h": "3c7f462470a1ba52", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `lib/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n volumes:\n - ./models.json:/app/public/config/models.json # Optional: Override default model configuration\n```\n\nThe default model configuration is located at `public/config/models.json`. For Docker deployment, you can create `models.json` alongside `.env.local` to override the default configuration.\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "76c017e763fd43b786567c9cdf1489185a160091": {"t": 1785771576.2675772, "n": 6712, "h": "c0b71df214ca10b0", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\nThe following AI providers are supported:\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- xAI (Grok)\n- OpenAI Compatible\n\nModels are configured in `lib/config/models.json`. Each model requires its corresponding API key to be set in the environment variables. See [Configuration Guide](docs/CONFIGURATION.md) for details.\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "dd231d0a41fd054ba1c74630bbf4e4327b999e67": {"t": 1785771578.1834662, "n": 6456, "h": "0de42a5292453d85", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "934b3af91123d8532cbeb2932bfc5b54366fcd58": {"t": 1785771579.6655877, "n": 6774, "h": "f922060575f4e65e", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n```\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n- xAI\n - grok-2\n - grok-2-vision\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "379efaa5ce782f0d21831c677aab294d96a3e789": {"t": 1785771582.1472092, "n": 6421, "h": "eb9efefb19e008af", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "23b9089d3d3f5c33e90f13263ee714c67772f1ac": {"t": 1785771583.8909655, "n": 6739, "h": "491bb9e3d4eeccf9", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel, Cloudflare Pages, or Docker.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n### Docker Prebuilt Image\n\nPrebuilt Docker images are available on GitHub Container Registry:\n\n```bash\ndocker pull ghcr.io/miurla/morphic:latest\n```\n\nYou can use it with docker-compose:\n\n```yaml\nservices:\n morphic:\n image: ghcr.io/miurla/morphic:latest\n env_file: .env.local\n ports:\n - '3000:3000'\n```\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "fcafd07e4784dd2136d93bffa6b33c0e820c5419": {"t": 1785771585.1539443, "n": 6412, "h": "633f2d381b2b5230", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 2.0 Pro (Experimental)\n - Gemini 2.0 Flash Thinking (Experimental)\n - Gemini 2.0 Flash\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "48379b70703092ed1064aaf1807ad59b4f75ff0e": {"t": 1785771587.7202609, "n": 6378, "h": "9094e359f23433e1", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - o3-mini\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "0c1bd6103200d6d6f9300d94710f0af128f15869": {"t": 1785771589.2194417, "n": 6366, "h": "337ff1299b4564ef", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n - Reasoning models with visible thought process\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- Fireworks\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n - Claude 3.5 Hike\n- Ollama\n - qwen2.5\n - deepseek-r1\n- Groq\n - deepseek-r1-distill-llama-70b\n- DeepSeek\n - DeepSeek V3\n - DeepSeek R1\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "9008c411b1504f729357809a7532f5121996a0bf": {"t": 1785771591.5371885, "n": 6359, "h": "48d180e18f157b1d", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n- DeepSeek\n - DeepSeek v3 [(Unstable)](https://github.com/vercel/ai/issues/4313#issuecomment-2587891644)\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "81c5a661859906659bc5dfc398e0b17b70e10b46": {"t": 1785771592.8203194, "n": 6356, "h": "66bbefc6995be134", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- DeepSeek\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n- DeepSeek\n - DeepSeek v3 (Unstable)[ttps://github.com/vercel/ai/issues/4313#issuecomment-2587891644]\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "674112992f7b8f7b27feab4af48437aefc747713": {"t": 1785771595.051837, "n": 6242, "h": "89277837416a9842", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n- 👥 [Contributing](#-contributing)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n\n## 👥 Contributing\n\nWe welcome contributions to Morphic! Whether it's bug reports, feature requests, or pull requests, all contributions are appreciated.\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- How to submit issues\n- How to submit pull requests\n- Commit message conventions\n- Development setup\n"}, "7e6909c5c8579f0c540290e8580dc21be93bd470": {"t": 1785771596.3352118, "n": 5880, "h": "57a5a6dfbeba805f", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n- ⚡ [AI SDK Implementation](#-ai-sdk-implementation)\n- 📦 [Open Source vs Cloud Offering](#-open-source-vs-cloud-offering)\n\n## 🛠 Features\n\n### Core Features\n\n- AI-powered search with GenerativeUI\n- Natural language question understanding\n- Multiple search providers support (Tavily, SearXNG, Exa)\n- Model selection from UI (switch between available AI models)\n\n### Chat & History\n\n- Chat history functionality (Optional)\n- Share search results (Optional)\n- Redis support (Local/Upstash)\n\n### AI Providers\n\n- OpenAI (Default)\n- Google Generative AI\n- Azure OpenAI\n- Anthropic\n- Ollama\n- Groq\n- OpenAI Compatible\n\n### Search Capabilities\n\n- URL-specific search\n- Video search support (Optional)\n- SearXNG integration with:\n - Customizable search depth (basic/advanced)\n - Configurable engines\n - Adjustable results limit\n - Safe search options\n - Custom time range filtering\n\n### Additional Features\n\n- Docker deployment ready\n- Browser search engine integration\n\n## 🧱 Stack\n\n### Core Framework\n\n- [Next.js](https://nextjs.org/) - App Router, React Server Components\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) - Text streaming / Generative UI\n\n### AI & Search\n\n- [OpenAI](https://openai.com/) - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI)\n- [Tavily AI](https://tavily.com/) - Default search provider\n- Alternative providers:\n - [SearXNG](https://docs.searxng.org/) - Self-hosted search\n - [Exa](https://exa.ai/) - Neural search\n\n### Data Storage\n\n- [Upstash](https://upstash.com/) - Serverless Redis\n- [Redis](https://redis.io/) - Local Redis option\n\n### UI & Styling\n\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [shadcn/ui](https://ui.shadcn.com/) - Re-usable components\n- [Radix UI](https://www.radix-ui.com/) - Unstyled, accessible components\n- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```bash\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```bash\ncd morphic\nbun install\n```\n\n### 3. Configure environment variables\n\n```bash\ncp .env.local.example .env.local\n```\n\nFill in the required environment variables in `.env.local`:\n\n```bash\n# Required\nOPENAI_API_KEY= # Get from https://platform.openai.com/api-keys\nTAVILY_API_KEY= # Get from https://app.tavily.com/home\n```\n\nFor optional features configuration (Redis, SearXNG, etc.), see [CONFIGURATION.md](./docs/CONFIGURATION.md)\n\n### 4. Run app locally\n\n#### Using Bun\n\n```bash\nbun dev\n```\n\n#### Using Docker\n\n```bash\ndocker compose up -d\n```\n\nVisit http://localhost:3000 in your browser.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n\n## ⚡ AI SDK Implementation\n\n### Current Version: AI SDK UI\n\nThis version of Morphic uses the AI SDK UI implementation, which is recommended for production use. It provides better streaming performance and more reliable client-side UI updates.\n\n### Previous Version: AI SDK RSC (v0.2.34 and earlier)\n\nThe React Server Components (RSC) implementation of AI SDK was used in versions up to [v0.2.34](https://github.com/miurla/morphic/releases/tag/v0.2.34) but is now considered experimental and not recommended for production. If you need to reference the RSC implementation, please check the v0.2.34 release tag.\n\n> Note: v0.2.34 was the final version using RSC implementation before migrating to AI SDK UI.\n\nFor more information about choosing between AI SDK UI and RSC, see the [official documentation](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc).\n\n## 📦 Open Source vs Cloud Offering\n\nMorphic is open source software available under the Apache-2.0 license.\n\nTo maintain sustainable development and provide cloud-ready features, we offer a hosted version of Morphic alongside our open-source offering. The cloud solution makes Morphic accessible to non-technical users and provides additional features while keeping the core functionality open and available for developers.\n\nFor our cloud service, visit [morphic.sh](https://morphic.sh).\n"}, "ef1c3a0f0ecb4b681b856f0be57208c7e019fe4f": {"t": 1785771597.7636898, "n": 9868, "h": "13d94fe7a9c315e1", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n> [!CAUTION]\n> Morphic is built with Vercel AI SDK RSC. AI SDK RSC is [experimental](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc) and has some limitations. When using it in production, it is recommended to [migrate](https://sdk.vercel.ai/docs/ai-sdk-rsc/migrating-to-ui) to SDK UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider\n - Ollama Provider\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Extract API: [Tavily AI](https://tavily.com/) / [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit <http://localhost:3000> in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at <http://localhost:3000>.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=<http://localhost:3000> # Base URL for local development\n - SEARXNG_API_URL=<http://localhost:8080> # Replace with your local SearXNG API URL or docker <http://searxng:8080>\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (<http://localhost:3000>) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to <https://docs.searxng.org/admin/settings/settings.html#settings-yml>\n\n## ✅ Verified models\n\n### List of models applicable to all\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 Pro (Unstable)\n - Gemini 2.0 Flash (Experimental)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "49eae6f24a59764b0e92243dcd6747721f951b44": {"t": 1785771599.1129198, "n": 9819, "h": "78bcf366ee011fdb", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n> [!CAUTION]\n> Morphic is built with Vercel AI SDK RSC. AI SDK RSC is [experimental](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc) and has some limitations. When using it in production, it is recommended to [migrate](https://sdk.vercel.ai/docs/ai-sdk-rsc/migrating-to-ui) to SDK UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider\n - Ollama Provider\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Extract API: [Tavily AI](https://tavily.com/) / [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "df38a2c863fa01018609bcb1609081c854592c0d": {"t": 1785771600.448587, "n": 9941, "h": "3bd511d7a690ab26", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n> [!CAUTION]\n> Morphic is built with Vercel AI SDK RSC. AI SDK RSC is [experimental](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc) and has some limitations. When using it in production, it is recommended to [migrate](https://sdk.vercel.ai/docs/ai-sdk-rsc/migrating-to-ui) to SDK UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Extract API: [Tavily AI](https://tavily.com/) / [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "88eddba90c74df89a7dd89ad3ba14cd7620a0a85": {"t": 1785771601.6776843, "n": 9941, "h": "a6ba384dee01f3a2", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!WARNING]\n> Morphic is built with Vercel AI SDK RSC. AI SDK RSC is [experimental](https://sdk.vercel.ai/docs/getting-started/navigating-the-library#when-to-use-ai-sdk-rsc) and has some limitations. When using it in production, it is recommended to [migrate](https://sdk.vercel.ai/docs/ai-sdk-rsc/migrating-to-ui) to SDK UI.\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Extract API: [Tavily AI](https://tavily.com/) / [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "64abbd654f7fda65a271e4258db3df22f48ed4a1": {"t": 1785771603.017923, "n": 9613, "h": "861e2c6ea072309e", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Extract API: [Tavily AI](https://tavily.com/) / [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "b0fc9e58bb145d289c617de04e275ed1da6c1d06": {"t": 1785771604.40491, "n": 9577, "h": "b622774cb0640eec", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n - Groq Provider\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Reader API: [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n- Groq\n - llama3-groq-8b-8192-tool-use-preview\n - llama3-groq-70b-8192-tool-use-preview\n"}, "7bb1d10ad179cad29f49749cc5dcbe21eda70f73": {"t": 1785771605.8606236, "n": 9469, "h": "7eaba99b29183ef8", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Reader API: [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n"}, "4908dce82fc044d468c938b24f290e20edb52661": {"t": 1785771607.1236808, "n": 9750, "h": "bcbdc84d92051beb", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215#issuecomment-2381902347)\n- Specify the model to generate answers\n - Groq API support [※](https://github.com/miurla/morphic/pull/58)\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Reader API: [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n\n### List of verified models that can be specified to writers:\n\n- [Groq](https://console.groq.com/docs/models)\n - LLaMA3.1 8b\n - LLaMA3.1 70B\n - LLaMA3 8b\n - LLaMA3 70b\n"}, "53d689810eca7f39813acb39015deff649836801": {"t": 1785771608.5498753, "n": 9727, "h": "bacd785ea60ec422", "c": "# Morphic\n\nAn AI-powered search engine with a generative UI.\n\n\n\n> [!NOTE]\n> Please note that there are differences between this repository and the official website [morphic.sh](https://morphic.sh). The official website is a fork of this repository with additional features such as authentication, which are necessary for providing the service online. The core source code of Morphic resides in this repository, and it's designed to be easily built and deployed.\n\n## 🗂️ Overview\n\n- 🛠 [Features](#-features)\n- 🧱 [Stack](#-stack)\n- 🚀 [Quickstart](#-quickstart)\n- 🌐 [Deploy](#-deploy)\n- 🔎 [Search Engine](#-search-engine)\n- ✅ [Verified models](#-verified-models)\n\n## 🛠 Features\n\n- Search and answer using GenerativeUI\n- Understand user's questions\n- Search history functionality\n- Share search results ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Video search support ([Optional](https://github.com/miurla/morphic/blob/main/.env.local.example))\n- Get answers from specified URLs\n- Use as a search engine [※](#-search-engine)\n- Support for providers other than OpenAI\n - Google Generative AI Provider\n - Azure OpenAI Provider [※](https://github.com/miurla/morphic/issues/13)\n - Anthropic Provider [※](https://github.com/miurla/morphic/pull/239)\n - Ollama Provider [※](https://github.com/miurla/morphic/issues/215))\n- Specify the model to generate answers\n - Groq API support [※](https://github.com/miurla/morphic/pull/58)\n- Local Redis support\n- SearXNG Search API support with customizable depth (basic or advanced)\n- Configurable search depth (basic or advanced)\n- SearXNG Search API support with customizable depth\n\n## 🧱 Stack\n\n- App framework: [Next.js](https://nextjs.org/)\n- Text streaming / Generative UI: [Vercel AI SDK](https://sdk.vercel.ai/docs)\n- Generative Model: [OpenAI](https://openai.com/)\n- Search API: [Tavily AI](https://tavily.com/) / [Serper](https://serper.dev) / [SearXNG](https://docs.searxng.org/)\n- Reader API: [Jina AI](https://jina.ai/)\n- Database (Serverless/Local): [Upstash](https://upstash.com/) / [Redis](https://redis.io/)\n- Component library: [shadcn/ui](https://ui.shadcn.com/)\n- Headless component primitives: [Radix UI](https://www.radix-ui.com/)\n- Styling: [Tailwind CSS](https://tailwindcss.com/)\n\n## 🚀 Quickstart\n\n### 1. Fork and Clone repo\n\nFork the repo to your Github account, then run the following command to clone the repo:\n\n```\ngit clone git@github.com:[YOUR_GITHUB_ACCOUNT]/morphic.git\n```\n\n### 2. Install dependencies\n\n```\ncd morphic\nbun install\n```\n\n### 3. Setting up Upstash Redis\n\nFollow the guide below to set up Upstash Redis. Create a database and obtain `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`. Refer to the [Upstash guide](https://upstash.com/blog/rag-chatbot-upstash#setting-up-upstash-redis) for instructions on how to proceed.\n\nIf you intend to use a local Redis, you can skip this step.\n\n### 4. Fill out secrets\n\n```\ncp .env.local.example .env.local\n```\n\nYour .env.local file should look like this:\n\n```\n# OpenAI API key retrieved here: https://platform.openai.com/api-keys\nOPENAI_API_KEY=\n\n# Tavily API Key retrieved here: https://app.tavily.com/home\nTAVILY_API_KEY=\n\n# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis\nUPSTASH_REDIS_REST_URL=\nUPSTASH_REDIS_REST_TOKEN=\n\n## Redis Configuration\n\nThis application supports both Upstash Redis and local Redis. To use local Redis:\n\n1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.\n2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.\n\nTo use Upstash Redis:\n\n1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.\n2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.\n\n# SearXNG Configuration\nSEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\nSEARCH_API=tavily # use searxng, tavily or exa\nSEARXNG_SECRET=\"\" # generate a secret key e.g. openssl rand -base64 32\nSEARXNG_PORT=8080 # default port\nSEARXNG_BIND_ADDRESS=0.0.0.0 # default address\nSEARXNG_IMAGE_PROXY=true # enable image proxy\nSEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address\nSEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches\nSEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n\n```\n\n### 5. Run app locally\n\n#### Using Bun\n\nTo run the application locally using Bun, execute the following command:\n\n`bun dev`\n\nYou can now visit http://localhost:3000 in your web browser.\n\n#### Using Docker\n\nTo run the application using Docker, use the following command:\n\n`docker compose up -d`\n\nThis will start the application in detached mode. You can access it at http://localhost:3000.\n\n## 🌐 Deploy\n\nHost your own live version of Morphic with Vercel or Cloudflare Pages.\n\n### Vercel\n\n[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmiurla%2Fmorphic&env=OPENAI_API_KEY,TAVILY_API_KEY,UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN)\n\n## 🔎 Search Engine\n\n### Setting up the Search Engine in Your Browser\n\nIf you want to use Morphic as a search engine in your browser, follow these steps:\n\n1. Open your browser settings.\n2. Navigate to the search engine settings section.\n3. Select \"Manage search engines and site search\".\n4. Under \"Site search\", click on \"Add\".\n5. Fill in the fields as follows:\n - **Search engine**: Morphic\n - **Shortcut**: morphic\n - **URL with %s in place of query**: `https://morphic.sh/search?q=%s`\n6. Click \"Add\" to save the new search engine.\n7. Find \"Morphic\" in the list of site search, click on the three dots next to it, and select \"Make default\".\n\nThis will allow you to use Morphic as your default search engine in the browser.\n\n### Using SearXNG as an Alternative Search Backend\n\nMorphic now supports SearXNG as an alternative search backend with advanced search capabilities. To use SearXNG:\n\n1. Ensure you have Docker and Docker Compose installed on your system.\n2. In your `.env.local` file, set the following variables:\n\n - NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Base URL for local development\n - SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080\n - SEARXNG_SECRET=your_secret_key_here\n - SEARXNG_PORT=8080\n - SEARXNG_IMAGE_PROXY=true\n - SEARCH_API=searxng\n - SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP\n - SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced'\n - SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG\n - SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # can be overriden in searxng config\n - SEARXNG_TIME_RANGE=None # Time range for search results\n - SEARXNG_SAFESEARCH=0 # Safe search setting\n - SEARXNG_CRAWL_MULTIPLIER=4 # Multiplier for the number of results to crawl in advanced search\n\n3. Two configuration files are provided in the root directory:\n\n - `searxng-settings.yml`: This file contains the main configuration for SearXNG, including engine settings and server options.\n - `searxng-limiter.toml`: This file configures the rate limiting and bot detection features of SearXNG.\n\n4. Run `docker-compose up` to start the Morphic stack with SearXNG included.\n5. SearXNG will be available at `http://localhost:8080` and Morphic will use it as the search backend.\n\n#### Advanced Search Configuration\n\n- `NEXT_PUBLIC_BASE_URL`: Set this to your local development URL (http://localhost:3000) or your production URL when deploying.\n- `SEARXNG_DEFAULT_DEPTH`: Set to 'basic' or 'advanced' to control the default search depth.\n- `SEARXNG_MAX_RESULTS`: Maximum number of results to return from SearXNG.\n- `SEARXNG_CRAWL_MULTIPLIER`: In advanced search mode, this multiplier determines how many results to crawl. For example, if `SEARXNG_MAX_RESULTS=10` and `SEARXNG_CRAWL_MULTIPLIER=4`, up to 40 results will be crawled before filtering and ranking.\n- `SEARXNG_ENGINES`: Comma-separated list of search engines to use.\n- `SEARXNG_TIME_RANGE`: Time range for search results (e.g., 'day', 'week', 'month', 'year', 'all').\n- `SEARXNG_SAFESEARCH`: Safe search setting (0 for off, 1 for moderate, 2 for strict).\n\nThe advanced search feature includes content crawling, relevance scoring, and filtering to provide more accurate and comprehensive results.\n\n#### Customizing SearXNG\n\n- You can modify `searxng-settings.yml` to enable/disable specific search engines, change UI settings, or adjust server options.\n- The `searxng-limiter.toml` file allows you to configure rate limiting and bot detection. This is useful if you're exposing SearXNG directly to the internet.\n- If you prefer not to use external configuration files, you can set these options using environment variables in the `docker-compose.yml` file or directly in the SearXNG container.\n\n#### Troubleshooting\n\n- If you encounter issues with specific search engines (e.g., Wikidata), you can disable them in `searxng-settings.yml`:\n\n```yaml\nengines:\n - name: wikidata\n disabled: true\n```\n\n- refer to https://docs.searxng.org/admin/settings/settings.html#settings-yml\n\n## ✅ Verified models\n\n### List of models applicable to all:\n\n- OpenAI\n - gpt-4o\n - gpt-4o-mini\n - gpt-4-turbo\n - gpt-3.5-turbo\n- Google\n - Gemini 1.5 pro (Unstable)\n- Anthropic\n - Claude 3.5 Sonnet\n- Ollama\n - qwen2.5\n\n### List of verified models that can be specified to writers:\n\n- [Groq](https://console.groq.com/docs/models)\n - LLaMA3.1 8b\n - LLaMA3.1 70B\n - LLaMA3 8b\n - LLaMA3 70b\n"}}}} |