Um mecanismo de pesquisa baseado em IA com uma interface de usuário generativa.
Cuidado
Morphic é construído com Vercel AI SDK RSC. AI SDK RSC é experimental e tem algumas limitações. Ao usá-lo em produção, é recomendado migrar para SDK UI.
Observação
Observe que existem diferenças entre este repositório e o site oficial morphic.sh. O site oficial é um fork deste repositório com recursos adicionais, como autenticação, necessários para a prestação do serviço online. O código-fonte principal do Morphic reside neste repositório e foi projetado para ser facilmente construído e implantado.
Bifurque o repositório para sua conta do Github e execute o seguinte comando para clonar o repositório:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/morphic.git
cd morphic
bun install
Siga o guia abaixo para configurar o Upstash Redis. Crie um banco de dados e obtenha UPSTASH_REDIS_REST_URL
e UPSTASH_REDIS_REST_TOKEN
. Consulte o guia Upstash para obter instruções sobre como proceder.
Se você pretende usar um Redis local, você pode pular esta etapa.
cp .env.local.example .env.local
Seu arquivo .env.local deve ficar assim:
# 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 executar o aplicativo localmente usando Bun, execute o seguinte comando:
bun dev
Agora você pode visitar http://localhost:3000 em seu navegador.
Para executar o aplicativo usando Docker, use o seguinte comando:
docker compose up -d
Isso iniciará o aplicativo no modo desanexado. Você pode acessá-lo em http://localhost:3000.
Hospede sua própria versão ao vivo do Morphic com Vercel ou Cloudflare Pages.
Se você deseja usar o Morphic como mecanismo de pesquisa em seu navegador, siga estas etapas:
https://morphic.sh/search?q=%s
Isso permitirá que você use o Morphic como mecanismo de pesquisa padrão no navegador.
Morphic agora suporta SearXNG como um back-end de pesquisa alternativo com recursos de pesquisa avançados. Para usar o SearXNG:
Certifique-se de ter o Docker e o Docker Compose instalados em seu sistema.
No seu arquivo .env.local
, defina as seguintes variáveis:
Dois arquivos de configuração são fornecidos no diretório raiz:
searxng-settings.yml
: Este arquivo contém a configuração principal do SearXNG, incluindo configurações do mecanismo e opções do servidor.searxng-limiter.toml
: Este arquivo configura os recursos de limitação de taxa e detecção de bot do SearXNG. Execute docker-compose up
para iniciar a pilha Morphic com SearXNG incluído.
SearXNG estará disponível em http://localhost:8080
e Morphic irá usá-lo como backend de pesquisa.
NEXT_PUBLIC_BASE_URL
: defina como seu URL de desenvolvimento local (http://localhost:3000) ou seu URL de produção ao implantar.SEARXNG_DEFAULT_DEPTH
: Defina como 'básico' ou 'avançado' para controlar a profundidade de pesquisa padrão.SEARXNG_MAX_RESULTS
: Número máximo de resultados a serem retornados do SearXNG.SEARXNG_CRAWL_MULTIPLIER
: No modo de pesquisa avançada, este multiplicador determina quantos resultados rastrear. Por exemplo, se SEARXNG_MAX_RESULTS=10
e SEARXNG_CRAWL_MULTIPLIER=4
, até 40 resultados serão rastreados antes da filtragem e classificação.SEARXNG_ENGINES
: lista separada por vírgulas de mecanismos de pesquisa a serem usados.SEARXNG_TIME_RANGE
: intervalo de tempo para resultados de pesquisa (por exemplo, 'dia', 'semana', 'mês', 'ano', 'todos').SEARXNG_SAFESEARCH
: configuração de pesquisa segura (0 para desativado, 1 para moderado, 2 para estrito).O recurso de pesquisa avançada inclui rastreamento de conteúdo, pontuação de relevância e filtragem para fornecer resultados mais precisos e abrangentes.
searxng-settings.yml
para ativar/desativar mecanismos de pesquisa específicos, alterar as configurações da interface do usuário ou ajustar as opções do servidor.searxng-limiter.toml
permite configurar a limitação de taxa e a detecção de bot. Isso é útil se você estiver expondo o SearXNG diretamente na Internet.docker-compose.yml
ou diretamente no contêiner SearXNG. searxng-settings.yml
: engines :
- name : wikidata
disabled : true