SmartSearch is an advanced search application inspired by PerplexityAI. It combines Retrieval-Augmented Generation (RAG) techniques with cutting-edge technologies to deliver precise and context-aware search results.
- RAG-based Search: Integrates Elasticsearch and SearxNG for document retrieval, paired with OpenAI's API for generating accurate, human-like responses.
- Dynamic User Interface: Built with React to ensure an intuitive and interactive experience.
- Flexible Backend Architecture: Powered by Django, seamlessly coordinating data flow between frontend, retrieval systems, and language models.
- Customizable Search Pipelines: Enhanced by LangChain, enabling easy configuration of RAG workflows to suit diverse use cases.
- Tech Stack: Developed using React with modern hooks and component-based design.
- Real-time Updates: Enables dynamic interaction and instant updates for user queries.
- Interactive Design: Provides a smooth user experience with an emphasis on accessibility and responsiveness.
- Core Framework: Built with Django for robust and scalable server-side architecture.
- Integrated RAG Pipelines: Utilizes LangChain to connect Elasticsearch and SearxNG with OpenAI's API, forming an optimized retrieval and generation workflow.
- API Management: Implements RESTful APIs to process search queries and return structured, contextually relevant results.
- LangChain: Streamlines the RAG process with modular and flexible pipelines.
- React: Powers the frontend with efficient state management and rendering.
- Django: Manages backend operations with a focus on scalability and security.
- Elasticsearch: Provides a powerful search and analytics engine for document retrieval.
- SearxNG: Offers meta-search capabilities, aggregating results from various sources.
- OpenAI API: Delivers state-of-the-art natural language generation for accurate and insightful responses.
- Frontend: Node.js and npm installed.
- Backend: Python (3.8 or higher), Django, and Elasticsearch installed.
- Environment Variables: API keys for OpenAI and SearxNG configured.
-
Clone the repository:
git clone <repository-url>
-
Navigate to the project directory:
cd smartsearch
-
Set up the frontend:
cd frontend npm install
-
Configure the backend:
cd backend pip install -r requirements.txt
-
Configure Elasticsearch and SearxNG:
- Start Elasticsearch and ensure it is running.
- Set up SearxNG for meta-search integration.
-
Run Elasticsearch and SearxNG:
- Start Elasticsearch locally or use a managed instance.
- Launch SearxNG and configure its API endpoint in the backend.
-
Start the Backend:
python manage.py runserver
-
Start the Frontend:
cd frontend npm start
-
Access the Application: Open your browser and navigate to
http://localhost:3000
to start using SmartSearch.
Contributions are highly encouraged! To contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a clear description of your changes.
This project is licensed under the MIT License. See the LICENSE
file for details.