DeepSearch is an LLM (Large Language Model) powered search engine application that allows users to search for information from various sources. This project was created using a backend developed with the GoFiber framework, a Svelte-based frontend, and a PostgreSQL database. It also offers a rich user interface with modern tools like Tailwind CSS.
- LLM-Powered Summarization and Analysis: Summarizes and analyzes search results.
- Multiple Search Engine Support: Fetches data from search engines like Google, Yandex, and Bing.
- Sqlite Database: Used to store and manage search results.
- Fiber Framework: A fast and scalable backend.
- Svelte Frontend: A user-friendly and high-performance interface.
- Tailwind CSS: A modern and stylish design.
- Go (v1.19+)
- Node.js (v16+)
- Sqlite (v3+)
-
Clone the Repository:
git clone https://github.com/username/deepsearch.git cd deepsearch
-
Install Backend Dependencies:
go mod tidy
-
Install Frontend Dependencies:
cd web npm install
-
Set Up the Database: Create a database in PostgreSQL and update the
dsn
value in theconfig/server.ini
file:[db] dsn="postgresql://user:password@localhost:5432/deepsearch"
-
Set Up Search Engine and LLM API Keys: Fill in the
key
andgemini
fields in theconfig/search.ini
file:[serpapi] key = "YOUR_SERPAPI_KEY" [ai] gemini = "YOUR_LLM_API_KEY"
-
Run the Backend:
go run main.go
-
Run the Frontend:
cd web npm run dev
-
Open the Application: Go to
http://localhost:3000
in your browser.
Contains API and database settings:
[api]
port = ":3000"
[db]
dsn = "postgresql://user:password@localhost:5432/deepsearch"
Contains search engine and LLM settings:
[serpapi]
key = "YOUR_SERPAPI_KEY"
google = true
yandex = true
bing = true
[ai]
gemini = "YOUR_GEMINI_API_KEY"
prompt = "Based on the data here, I want you to extract a summary and analyze it..."
- Perform a Search: Enter a query on the main page and click the "Search" button.
- View the Results: The search results are displayed in a summarized and analyzed form.
- Error Messages: If an error occurs, an appropriate message is shown to the user.
If you want to contribute, please submit a pull request or open an issue. All contributions are welcome!
If you like this project, please support it by giving it a ⭐! 😊