Stage 1. User Access
The engineer opens the Technical Documentation Search Application and accesses the search interface.
The application displays the search page and allows the engineer to begin searching for technical information.
This project is a semantic search system for technical documentation. It uses FastEmbed to convert documents and user questions into vectors, Qdrant to find the most relevant information based on meaning, and Streamlit to display the results. The goal is to help engineers find relevant technical information quickly without relying only on keyword matching.
To build a scalable semantic search system using FastEmbed, Qdrant, and Streamlit on Kubernetes to convert technical documents into vectors, search them based on meaning, and provide fast and relevant document results.
The engineer opens the Technical Documentation Search Application and accesses the search interface.
The application displays the search page and allows the engineer to begin searching for technical information.
The engineer browses the available technical documents, manuals, guides, and reference materials.
The application displays the available documentation and allows the engineer to select relevant content.
The engineer enters a natural-language question or describes the required technical information.
The application receives the search query and starts the information retrieval process.
The application searches the available documentation and identifies information relevant to the engineer's query.
The search process compares the meaning of the query with the available document content and identifies the most relevant sections.
The application displays the most relevant technical information to the engineer.
The relevant document sections are retrieved and presented through the application interface.
The engineer reviews the retrieved information and selects the required technical content.
The engineer reads the displayed information and uses it for troubleshooting, configuration, or technical reference.
If the required information is not found, the engineer enters a different or more specific query.
The new query is processed and the application returns updated relevant results.
The engineer obtains the required technical information and completes the search activity.
The engineer uses the retrieved documentation for the required technical task.
Manages and runs the application's containers. It handles Qdrant, FastEmbed, Streamlit, and other services, manages workloads and namespaces, and automatically restarts failed containers.
Stores the document vectors created from technical documents. It performs similarity searches to find documents that are most relevant to a user's question.
Converts technical documents and user questions into vector representations. These vectors allow the system to compare text based on meaning instead of only matching keywords.
Provides the web-based search interface. Engineers can enter natural-language questions and view the relevant documents and search results.
Packages FastEmbed, Qdrant, Streamlit, and their required dependencies into containers so that they can run consistently across environments.
Provide the computing resources needed to run the self-hosted Kubernetes cluster and its application containers.
Provides the standard Linux operating system for the Master Node and Worker Nodes.
Provides a secure private network for the platform and separates public access from internal application services.
Control network access and protect the Kubernetes and Qdrant services from unauthorized traffic.
Stores raw technical documents, backups, processed data, and archived vector data.
The proposed solution is a high-performance semantic search platform using FastEmbed, Qdrant, and Streamlit. It runs on a self-hosted Kubernetes cluster using Cloud EC2 and Ubuntu Server 24.04 LTS inside a secure Cloud VPC. Technical documents are stored in Cloud S3 and processed using Python. The text is cleaned and divided into smaller sections, and FastEmbed converts these sections into vector representations. Qdrant stores these vectors and finds the most relevant information when a user searches for something. Engineers use the Streamlit web interface to enter natural-language questions and receive relevant technical information. Kubernetes manages the application containers and automatically handles failures and increased workloads.