This Streamlit application is a virtual assistant, leveraging Retrieval Augmented Generation (RAG) and the LlamaIndex library to provide accurate and insightful information based on indexed documents. It's designed to mirror Noble Ackerson's expertise in emergent technologies, product strategy, and related subjects.
- Factually accurate responses using RAG
- Multiple data handling options (e.g., MongoDB, SimpleDirectory)
- Modular, scalable, and designed for enterprise-grade deployment
- Python 3.x
- Streamlit
- LlamaIndex library
- MongoDB (Optional)
-
Clone the repository.
git clone https://github.com/stigsfoot/ask-noble-virtual-agent.git
-
Navigate to the project directory.
cd ask-noble-virtual-agent
-
Install the required packages.
pip install -r requirements.txt
- The
config_helper.py
file sets up the Streamlit app's initial configurations. - Data handlers are implemented in
data_handlers.py.
- The factory pattern is implemented in
data_handler_factory.py
for future scalability in adding new data handlers. - The
readers.py
file is used for different reader classes.
-
Start the Streamlit app.
streamlit run streamlit_app.py
-
Select the data handler you wish to use from the dropdown.
-
Interact with the virtual assistant.
If you encounter any issues, check the following:
- Make sure all dependencies are installed.
- Ensure MongoDB is running if you use it as a data handler.
Feel free to fork the repository and submit pull requests.
I guess this is a use at your own risk license.