This project implements a Question Answering (QA) system for CUDA documentation. It crawls the NVIDIA CUDA documentation, processes the data, stores it in a vector database, and uses advanced retrieval techniques to answer user queries.
The main dependencies for this project are:
For a complete list of dependencies, refer to the requirements.txt file.
Ensure that you have a Milvus server running. Refer to the Milvus documentation for installation and setup instructions.
Run the main script: 3. The system will start by crawling the CUDA documentation, processing the data, and storing it in the Milvus database. This initial setup may take some time.
Once the setup is complete, you can start asking questions about CUDA. The system will provide answers based on the retrieved information.
To exit the system, type 'quit' when prompted for a question.
main.py: The main script that orchestrates the entire process.crawler/web_crawler.py: Contains the web crawling logic.data_processing/chunking.py: Implements advanced data chunking techniques.data_processing/embedding.py: Handles the creation of vector embeddings.vector_db/milvus_db.py: Manages interactions with the Milvus database.retrieval/query_expansion.py: Implements query expansion techniques.retrieval/hybrid_retrieval.py: Contains the hybrid retrieval logic.qa/llm_qa.py: Manages the question answering process using a language model.SentenceTransformer model in main.py.crawl_data function (currently set to 5 levels).top_k parameter in the retrieve method call.If you encounter any issues:
For any persistent problems, please open an issue in the GitHub repository.