Un motor de búsqueda impulsado por IA con una interfaz de usuario generativa.
Precaución
Morphic está construido con Vercel AI SDK RSC. AI SDK RSC es experimental y tiene algunas limitaciones. Cuando lo use en producción, se recomienda migrar a la interfaz de usuario del SDK.
Nota
Tenga en cuenta que existen diferencias entre este repositorio y el sitio web oficial morphic.sh. El sitio web oficial es una bifurcación de este repositorio con características adicionales como la autenticación, que son necesarias para brindar el servicio en línea. El código fuente principal de Morphic reside en este repositorio y está diseñado para ser construido e implementado fácilmente.
Bifurca el repositorio en tu cuenta de Github y luego ejecuta el siguiente comando para clonar el repositorio:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/morphic.git
cd morphic
bun install
Siga la guía a continuación para configurar Upstash Redis. Cree una base de datos y obtenga UPSTASH_REDIS_REST_URL
y UPSTASH_REDIS_REST_TOKEN
. Consulte la guía de Upstash para obtener instrucciones sobre cómo proceder.
Si tiene intención de utilizar un Redis local, puede omitir este paso.
cp .env.local.example .env.local
Su archivo .env.local debería verse así:
# 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
Para ejecutar la aplicación localmente usando Bun, ejecute el siguiente comando:
bun dev
Ahora puede visitar http://localhost:3000 en su navegador web.
Para ejecutar la aplicación usando Docker, use el siguiente comando:
docker compose up -d
Esto iniciará la aplicación en modo independiente. Puede acceder a él en http://localhost:3000.
Aloje su propia versión en vivo de Morphic con Vercel o Cloudflare Pages.
Si quieres utilizar Morphic como motor de búsqueda en tu navegador, sigue estos pasos:
https://morphic.sh/search?q=%s
Esto le permitirá utilizar Morphic como motor de búsqueda predeterminado en el navegador.
Morphic ahora admite SearXNG como motor de búsqueda alternativo con capacidades de búsqueda avanzada. Para utilizar SearXNG:
Asegúrese de tener Docker y Docker Compose instalados en su sistema.
En su archivo .env.local
, configure las siguientes variables:
Se proporcionan dos archivos de configuración en el directorio raíz:
searxng-settings.yml
: este archivo contiene la configuración principal de SearXNG, incluida la configuración del motor y las opciones del servidor.searxng-limiter.toml
: este archivo configura las funciones de limitación de velocidad y detección de bots de SearXNG. Ejecute docker-compose up
para iniciar la pila Morphic con SearXNG incluido.
SearXNG estará disponible en http://localhost:8080
y Morphic lo utilizará como motor de búsqueda.
NEXT_PUBLIC_BASE_URL
: configúrelo en su URL de desarrollo local (http://localhost:3000) o en su URL de producción al realizar la implementación.SEARXNG_DEFAULT_DEPTH
: Establezca en 'básico' o 'avanzado' para controlar la profundidad de búsqueda predeterminada.SEARXNG_MAX_RESULTS
: Número máximo de resultados para devolver desde SearXNG.SEARXNG_CRAWL_MULTIPLIER
: en el modo de búsqueda avanzada, este multiplicador determina cuántos resultados rastrear. Por ejemplo, si SEARXNG_MAX_RESULTS=10
y SEARXNG_CRAWL_MULTIPLIER=4
, se rastrearán hasta 40 resultados antes de filtrarlos y clasificarlos.SEARXNG_ENGINES
: Lista separada por comas de motores de búsqueda a utilizar.SEARXNG_TIME_RANGE
: rango de tiempo para los resultados de búsqueda (por ejemplo, 'día', 'semana', 'mes', 'año', 'todos').SEARXNG_SAFESEARCH
: configuración de búsqueda segura (0 para desactivado, 1 para moderado, 2 para estricto).La función de búsqueda avanzada incluye rastreo de contenido, puntuación de relevancia y filtrado para proporcionar resultados más precisos y completos.
searxng-settings.yml
para habilitar/deshabilitar motores de búsqueda específicos, cambiar la configuración de la interfaz de usuario o ajustar las opciones del servidor.searxng-limiter.toml
le permite configurar la limitación de velocidad y la detección de bots. Esto es útil si estás exponiendo SearXNG directamente a Internet.docker-compose.yml
o directamente en el contenedor SearXNG. searxng-settings.yml
: engines :
- name : wikidata
disabled : true