Skip to content

Open source version of Perplexity, your own AI search engine

License

Notifications You must be signed in to change notification settings

JayTing511/search4all

 
 

Repository files navigation

Search4All

The opensource AI search platform
Live Demo

Features

  • Built-in support for LLM
  • Built-in support for search engine
  • Customizable pretty UI interface
  • Shareable, cached search results

Setup Search Engine API

Choose your search service

Search1API

Search1API is a versatile search aggregation service that enables you to perform searches across Google, Bing, and DuckDuckGo, and also retrieve clear content from URLs. search1api website

Bing Search

To use the Bing Web Search API, please visit this link to obtain your Bing subscription key.

Google Search

You have three options for Google Search: you can use the SearchApi Google Search API from SearchApi, Serper Google Search API from Serper, or opt for the Programmable Search Engine provided by Google.

Deployment

Zeabur

Just click it

Deploy on Zeabur

Docker

Change the environment variables and run the docker

docker run -d --name search4all -e OPENAI_API_KEY=sk-XXX -e OPENAI_BASE_URL=https://api.openai.com/v1 -e LLM_MODEL=gpt-3.5-turbo-0125 -e RELATED_QUESTIONS=1 -e SEARCH1API_KEY=XXX -e BACKEND=SEARCH1API -p 8800:8800 docker.io/fatwang2/search4all

Docker-Compose

  1. Download the docker-compose file on your mechine
wget https://raw.githubusercontent.com/fatwang2/search4all/main/docker-compose.yml
  1. Change the environment variables in the file

  2. Run the docker

docker compose up -d

Manual

  1. install the requirements.txt
pip3 install -r requirements.txt
  1. Set you LLM
export OPENAI_API_KEY=sk-XXX
OPENAI_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-3.5-turbo-0125
RELATED_QUESTIONS=1
NODE_ENV=production
  1. Set your key of search
export SEARCH1API_KEY=YOUR_SEARCH1API_KEY
  1. Build web
cd web && npm install && npm run build
  1. Run server
BACKEND=SEARCH1API python3 search4all.py

Environment Variable

This project provides some additional configuration items set with environment variables:

Environment Variable Required Description Example
OPENAI_API_KEY Yes This is the API key you apply on the OpenAI account page sk-xxxxxx...xxxxxx
OPENAI_BASE_URL No If you manually configure the OpenAI interface proxy, you can use this configuration item to override the default OpenAI API request base URL The default value is
https://api.openai.com/v1
LLM_MODEL Yes The model you want to use. gpt-3.5-turbo-0125
RELATED_QUESTIONS No Show the related questions. 1
NODE_ENV No The environment required for deployment is necessary only during manual deployment. production
BACKEND Yes The search service you want. SEARCH1API,BING,GOOGLE,SERPER,SEARCHAPI
CHAT_HISTORY No Continue to ask about the results 1
SEARCH1API_KEY Yes If you choose SEARCH1API. xxx
BING_SEARCH_V7_SUBSCRIPTION_KEY Yes If you choose BING. xxx
GOOGLE_SEARCH_CX Yes If you choose GOOGLE. xxxx
GOOGLE_SEARCH_API_KEY Yes If you choose GOOGLE. xxx
SEARCHAPI_API_KEY Yes If you choose SEARCHAPI. xxx
SERPER_SEARCH_API_KEY Yes If you choose SERPER. xxx
NEXT_PUBLIC_GOOGLE_ANALYTICS No You can use Google Analytics to know how many users you have on your website. MEASUREMENT ID,you can find on your google analytics account,like G-XXXXXX

TODO

  • Support Lepton
  • Support continuous search
  • Support More LLMs
  • Support continuous talk about the results
  • Support Google Analytics
  • Support the related questions by function calling
  • Support the Docker
  • Support the Docker-Compose
  • Support the Zeabur

About

Open source version of Perplexity, your own AI search engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 50.4%
  • TypeScript 46.3%
  • Dockerfile 1.7%
  • Other 1.6%