This Low Code project leverages out of box Search capabilities and Open AI capabilities to enable a rich search experience for your website based solely on the public site information from your pages. The project uses Bing Custom Search to fetch relevant web pages based on a user's search query, leverages OpenAI's language models to pick up to a few of the pages that best answer the user's query, visits the pages to fetch and parse the text info on them, and then uses Open AI to generate comprehensive responses based on the page information.
project_root/
├── backend/
│ ├── app.py
│ ├── requirements.txt
│ └── sysprompt.txt
├── frontend/
│ ├── index.html
│ └── search_results.js
├── setup.sh
├── start.sh
├── stop.sh
├── .env.template
├── .gitignore
└── README.md
Before setting up the project, ensure you have the following installed:
You'll also need to obtain the following:
For a quick, automated setup of both the backend and frontend, use our setup script:
Clone this repository and navigate to the project directory:
git clone https://github.com/function1st/genaideepserp-public.git
cd genaideepserp-public
Make the setup script executable:
chmod +x setup.sh
Run the setup script:
./setup.sh
Follow the prompts to enter your:
Note: You'll need to set up a Bing Custom Search and obtain its Configuration ID before running this script. Visit the Bing Custom Search Portal to create your custom search instance.
After you've run the initial setup, you can use the start.sh
script to easily start both the backend and frontend servers:
Make the start script executable (if you haven't already):
chmod +x start.sh
Run the start script:
./start.sh
The script will start both the backend and frontend servers.
Access the application by opening a web browser and navigating to:
http://localhost:8080
The backend API will be available at:
http://localhost:5001
When you're done, press Enter in the terminal where you ran the start script to stop both servers.
This script is useful for restarting the application after you've stopped it or if you've restarted your computer. It ensures that both the backend and frontend are properly started and connected.
If you need to stop the application at any time, you can use the stop.sh
script:
Make the stop script executable:
chmod +x stop.sh
Run the stop script:
./stop.sh
This will safely terminate both the backend and frontend servers.
If you prefer to set up the project manually:
Set up the backend:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Create a .env
file in the backend
directory based on .env.template
and fill in your API keys.
Set up the frontend:
cd ../frontend
npm install -g http-server
Start the backend:
cd ../backend
python app.py
In a new terminal, start the frontend:
cd frontend
http-server -p 8080
http://localhost:8080
.backend/app.py
.frontend/index.html
and frontend/search_results.js
.backend/sysprompt.txt
. Modify this file to change the behavior of the AI assistant..env
file. Use .env.template
as a guide to set up your own .env
file.IMPORTANT: This project is intended for educational purposes only and should not be used for production workloads. The creators and contributors of this project accept no responsibility for its functionality, reliability, or any consequences arising from its use.
Disclaimer Users of this project are solely responsible for ensuring their use complies with the terms and conditions of all third-party services utilized, including but not limited to Bing Custom Search, Azure services, and OpenAI. Users must also ensure their use of this project adheres to all applicable local, national, and international laws and regulations.
The creators and contributors of this project are not responsible for any misuse, data breaches, costs incurred, or any other liabilities arising from the use of this project or the third-party services it integrates with. This project is provided "as is" without any warranty, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of this license, visit CC BY-NC 4.0.
This project is licensed for free use for educational and non-commercial purposes only. Commercial use is strictly prohibited. The software is provided "as is", without warranty of any kind, express or implied. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
Contributions to improve the educational value of this project are welcome. Please follow these steps to contribute: