This repository is dedicated to enhancing the search functionality of the NFDI4BioImage training website by collecting and organizing training materials and related resources.
The project leverages several key technologies:
- Elasticsearch: For indexing and searching materials.
- React: As the frontend framework for building a user-friendly interface.
- Flask: Serving as the backend API to manage interactions with the database and Elasticsearch.
- Scroll API: Used to efficiently handle large datasets during search queries.
- NFDIBIOIMAGE Assistant: Helps researchers find relevant resources.
- KISSKI LLM: Powers intelligent chatbot responses.
- Retrieval Augmented Generation: Provides context-aware answers.
To simplify the setup process, the project is containerized with Docker. Follow these steps to get the search engine up and running on your local machine.
-
GitHub API Key or Token: The search engine requires access to GitHub for submitting and managing materials. Ensure that you have set up the necessary GitHub API keys or tokens on your machine.
- You can refer to this website for instructions on how to set up the API key or token.
- This key/token should be securely stored and added to the necessary environment variables on your machine.
-
KISSKI API Key: To enable the NFDIBIOIMAGE Assistant to interact with the KISSKI LLM service, you need to configure your KISSKI API key. Follow these steps to set it up:
- Visit the official KISSKI LLM service page: KISSKI LLM Service.
- Register or log in to access the service.
- Once registered, generate your KISSKI API key from the email.
- Open the project directory in your preferred code editor.
- Locate the
.env
file in the root of the project. If the file doesn't exist, create a new one. - Replace your_kisski_api_key_here in your .env file with the API key you obtained from KISSKI:
KISSKI_API_KEY=your_kisski_api_key_here
- Save the
.env
file.
-
Docker and Docker Compose installed on your machine.
-
Currently, this project is only supported on Windows.
-
Clone the repository:
git clone https://github.com/NFDI4BIOIMAGE/nfdi_search_engine.git
cd nfdi_search_engine
-
Locate the
docker-compose.yml
file in the project directory. -
Build and start the containers:
docker-compose up --build
This command will pull all necessary images, build the project, and start the containers.
- Important: After the initial setup, when you start the containers again by clicking the Start button in Docker Desktop, you will need to wait approximately 37 seconds for Elasticsearch and the Chatbot's LLM service to fully initialize before the search engine and chatbot become accessible.
Once the Docker containers are running, you can access the application:
- Search Engine Interface: Visit 'http://localhost:3000' to access the search engine. You’ll find a user-friendly interface that allows you to search and browse a variety of training materials related to bioimage analysis.
- Real-Time Search Suggestions: As you type in the search bar, real-time search suggestions will appear, helping you quickly locate relevant materials. The suggestions provide specific document titles based on your query, making it easier to find exactly what you need.
- View All Training Materials: Explore all available training materials in the Materials section, where resources are displayed in a paginated, organized format. Use the filters on the left to sort materials by Authors, Tags, Types, and Licenses to refine your search results further.
- Submit Materials: Contribute to the platform by submitting new training materials through the Submit Materials page. Navigate to 'http://localhost:3000/' submit-materials and complete the form to add your content. Fields marked with * are required, while fields labeled as "Optional" can be filled in at your discretion.
- NFDIBIOIMAGE Assistant: Click the floating chatbot icon at the bottom-right corner of the homepage to interact with the NFDIBIOIMAGE Assistant.
- Type your question or keyword in the chat box.
- Within seconds, the assistant will provide suggestions and links to relevant materials for instant access.
-
Search Engine: Find all the current training materials available on the NFDI4BioImage training website with easy-to-use search functionality.
-
Material Submission: A streamlined process for collecting and managing training materials via the submission portal.
-
Chatbot Assistant: Interact with the intelligent assistant to get quick answers, suggestions, and relevant material links for your queries.
If you'd like to contribute to the project, feel free to open an issue or submit a pull request.