具有生成式用户界面的人工智能驱动的搜索引擎。
警告
Morphic 使用 Vercel AI SDK RSC 构建。 AI SDK RSC 是实验性的,有一些限制。在生产中使用时,建议迁移到 SDK UI。
笔记
请注意,该存储库与官方网站 morphic.sh 之间存在差异。官方网站是该存储库的一个分支,具有身份验证等附加功能,这是提供在线服务所必需的。 Morphic 的核心源代码位于此存储库中,它的设计目的是轻松构建和部署。
将存储库分叉到您的 Github 帐户,然后运行以下命令来克隆存储库:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/morphic.git
cd morphic
bun install
请按照以下指南设置 Upstash Redis。创建数据库并获取UPSTASH_REDIS_REST_URL
和UPSTASH_REDIS_REST_TOKEN
。请参阅 Upstash 指南,了解如何继续操作的说明。
如果您打算使用本地Redis,则可以跳过此步骤。
cp .env.local.example .env.local
您的 .env.local 文件应如下所示:
# OpenAI API key retrieved here: https://platform.openai.com/api-keys
OPENAI_API_KEY=
# Tavily API Key retrieved here: https://app.tavily.com/home
TAVILY_API_KEY=
# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
## Redis Configuration
This application supports both Upstash Redis and local Redis. To use local Redis:
1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.
2. 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.
To use Upstash Redis:
1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.
2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.
# SearXNG Configuration
SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080
SEARCH_API=tavily # use searxng, tavily or exa
SEARXNG_SECRET="" # generate a secret key e.g. openssl rand -base64 32
SEARXNG_PORT=8080 # default port
SEARXNG_BIND_ADDRESS=0.0.0.0 # default address
SEARXNG_IMAGE_PROXY=true # enable image proxy
SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address
SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches
SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG
要使用 Bun 在本地运行应用程序,请执行以下命令:
bun dev
您现在可以在 Web 浏览器中访问 http://localhost:3000。
要使用 Docker 运行应用程序,请使用以下命令:
docker compose up -d
这将以分离模式启动应用程序。您可以通过 http://localhost:3000 访问它。
使用 Vercel 或 Cloudflare Pages 托管您自己的 Morphic 实时版本。
如果您想在浏览器中使用 Morphic 作为搜索引擎,请按照下列步骤操作:
https://morphic.sh/search?q=%s
s这将允许您使用 Morphic 作为浏览器中的默认搜索引擎。
Morphic 现在支持 SearXNG 作为具有高级搜索功能的替代搜索后端。要使用 SearXNG:
确保您的系统上安装了 Docker 和 Docker Compose。
在.env.local
文件中,设置以下变量:
根目录下提供了两个配置文件:
searxng-settings.yml
:此文件包含 SearXNG 的主要配置,包括引擎设置和服务器选项。searxng-limiter.toml
:此文件配置 SearXNG 的速率限制和机器人检测功能。运行docker-compose up
以启动包含 SearXNG 的 Morphic 堆栈。
SearXNG 将在http://localhost:8080
上提供,Morphic 将使用它作为搜索后端。
NEXT_PUBLIC_BASE_URL
:将其设置为本地开发 URL (http://localhost:3000) 或部署时的生产 URL。SEARXNG_DEFAULT_DEPTH
:设置为“基本”或“高级”以控制默认搜索深度。SEARXNG_MAX_RESULTS
:从 SearXNG 返回的最大结果数。SEARXNG_CRAWL_MULTIPLIER
:在高级搜索模式下,此乘数确定要抓取的结果数量。例如,如果SEARXNG_MAX_RESULTS=10
且SEARXNG_CRAWL_MULTIPLIER=4
,则在过滤和排名之前最多会爬网 40 个结果。SEARXNG_ENGINES
:要使用的搜索引擎的逗号分隔列表。SEARXNG_TIME_RANGE
:搜索结果的时间范围(例如“日”、“周”、“月”、“年”、“全部”)。SEARXNG_SAFESEARCH
:安全搜索设置(0 表示关闭,1 表示中等,2 表示严格)。高级搜索功能包括内容爬行、相关性评分和过滤,以提供更准确、更全面的结果。
searxng-settings.yml
以启用/禁用特定搜索引擎、更改UI设置或调整服务器选项。searxng-limiter.toml
文件允许您配置速率限制和机器人检测。如果您将 SearXNG 直接暴露到互联网上,这非常有用。docker-compose.yml
文件中的环境变量或直接在 SearXNG 容器中设置这些选项。 searxng-settings.yml
中禁用它们: engines :
- name : wikidata
disabled : true