生成 UI を備えた AI を活用した検索エンジン。
注意
Morphic は Vercel AI SDK RSC を使用して構築されています。 AI SDK RSC は実験的なものであり、いくつかの制限があります。運用環境で使用する場合は、SDK UI に移行することをお勧めします。
注記
このリポジトリと公式 Web サイトの morphic.sh には違いがあることに注意してください。公式 Web サイトは、オンラインでサービスを提供するために必要な認証などの追加機能を備えたこのリポジトリのフォークです。 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
これにより、ブラウザのデフォルトの検索エンジンとして Morphic を使用できるようになります。
Morphic は、高度な検索機能を備えた代替検索バックエンドとして SearXNG をサポートするようになりました。 SeaXNG を使用するには:
システムに Docker と Docker Compose がインストールされていることを確認してください。
.env.local
ファイルで、次の変数を設定します。
ルート ディレクトリには 2 つの構成ファイルが提供されます。
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
: デフォルトの検索深さを制御するには、「basic」または「advanced」に設定します。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