An LLM-powered tutoring frontend for Q&Aing learning materials.
DISCLAIMER: This repo is work in process, there is no clean containered release yet.
- Install Anaconda or Miniconda
- Create Conda environment based on Python 3.10 (e.g.
conda create -y -k --prefix venv python=3.10
) - Activate the Conda environment (e.g.
conda activate venv/
) - Download, build and install the appropriate cuda-enabled pytorch packages (e.g.
conda install -y -k pytorch[version=2,build=py3.10_cuda11.7*] torchvision torchaudio pytorch-cuda=11.7 cuda-toolkit ninja git -c pytorch -c nvidia/label/cuda-11.7.0 -c nvidia
) - Install the pip requirements (
pip install -r requirements.txt
) - start the backend (e.g.
python start_backend.py
) - the FastAPI-Backend, via which LLM and vectorstore functinality is accessed. The backend can already be accessed via the logged uvicorn URL + /docs (Swagger UI) - start the streamlit app(s) (e.g.
streamlit run streamlit_main.py
) - the streamlit prototype app(s) will be started and a browser window should automatically open - (optional) start the umbrella flask app (e.g.
python flask_main.py
) - the flask app which integrates the streamlit apps will be started and can be accessed via the logged URL
- load and embed learning resources
- interface embedded resources via LLMs
- ask questions
- hold conversation
- create and work through learning cards
- access web search results via LLM tool
- backend for
- loading and interfacing LLMs
- loading and interfacing vectorstore-based knowledgebases
- frontend by
- prototyping simple streamlit apps for the given features
- integrating streamlit apps in flask app
implement control structuresextract common functionality to utilityimplement streamlit app prototypeclean up control structures and utility- clean up streamlit app
clean up interface- parameterize backend interface
add and adjust Common Flask Frontendintegrate streamlit into Common Flask Frontend (iframes)- add parameterized model loading for different types to utility
- read in available local models and interface
- allow for downloading and storing models from Huggingface
- add resource-monitoring and guards for resource-heavy functionality
- add finetuning utility
- clean up flask app