Поисковая система на базе искусственного интеллекта с генеративным пользовательским интерфейсом.
Осторожность
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
Теперь вы можете посетить http://localhost:3000 в своем веб-браузере.
Чтобы запустить приложение с помощью Docker, используйте следующую команду:
docker compose up -d
Это запустит приложение в автономном режиме. Вы можете получить к нему доступ по адресу http://localhost:3000.
Разместите свою собственную действующую версию Morphic с помощью Vercel или Cloudflare Pages.
Если вы хотите использовать Morphic в качестве поисковой системы в своем браузере, выполните следующие действия:
https://morphic.sh/search?q=%s
Это позволит вам использовать Morphic в качестве поисковой системы по умолчанию в браузере.
Morphic теперь поддерживает SearXNG в качестве альтернативного поискового механизма с расширенными возможностями поиска. Чтобы использовать SearXNG:
Убедитесь, что в вашей системе установлены Docker и Docker Compose.
В вашем файле .env.local
установите следующие переменные:
В корневом каталоге имеются два файла конфигурации:
searxng-settings.yml
: этот файл содержит основную конфигурацию SearXNG, включая настройки движка и параметры сервера.searxng-limiter.toml
: этот файл настраивает функции ограничения скорости и обнаружения ботов SearXNG. Запустите docker-compose up
, чтобы запустить стек Morphic с включенным SearXNG.
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
, чтобы включить/отключить определенные поисковые системы, изменить настройки пользовательского интерфейса или настроить параметры сервера.searxng-limiter.toml
позволяет настроить ограничение скорости и обнаружение ботов. Это полезно, если вы размещаете SearXNG непосредственно в Интернете.docker-compose.yml
или непосредственно в контейнере SearXNG. searxng-settings.yml
: engines :
- name : wikidata
disabled : true