具有生成式使用者介面的人工智慧驅動的搜尋引擎。
警告
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