- Make pip environemnt
python3 -m pip install chromadb python-dotenv openai flask h5py
You should make a file in the main directory of this repo called .env that contains the following variables:
LLM_NAME="your_llm_model_name" # (e.g "gpt-3.5-turbo-16k" or "NousResearch/Nous-Hermes-Llama2-13b")
OPENAI_API_KEY="your_openai_api_key" # Only if you are using OpenAI models
CACHE_DIR="your_cache_dir" # Only if you are using Huggingface models
Your OPENAI key will look something like sk-RANDOMTEXT. So if you you use gpt3.5 your .env file will live in the TokamakText directory and look like:
LLM_NAME="gpt-3.5-turbo-16k"
OPENAI_API_KEY="sk-RANDOMTEXT"
To run huggingface models, you'll need to install the torch and transformers libraries. A conda environment.yml file is provided, if useful.
You just have to set in your rag/.env the name of the model you want to use plus the path to the directory where the model will be stored. For example, to run Llama-2-13b-chat-hf and store it in your home dir you would just have to run:
LLM_NAME=meta-llama/Llama-2-13b-chat-hf
CACHE_DIR=~/
Then, when launching rag_server.py provide the --llm_type huggingface argument:
python3 rag_server.py --llm_type huggingface
Go to OPEN AI website and set-up billing information and get API key. You can set usage limits to make sure you don't get charged more than $1 or so.
Copy OPENAI key to a file you make called .env in the rag/ directory with the line: OPENAI_API_KEY="YOUR_KEY"
This is needed to embed miniproposals and any papers from journals. In the main directory run python mass_pdf_to_txt.py pdf_dir txt_dir and it will grab all the pdfs from pdf_dir and output them in txt_dir with the same name. This is not error checked well so there should not be non-pdfs in pdf_dir and txt_dir has to exist.
Move to rag/ directory and do everything else there. Run python3 embed_data.py h5_file to turn a h5 file into a file full of embeddings. Make sure the embeddings end up in a db/ directory in the rag/ directory, not the main directory.
Run python3 rag_server.py and make queries to the local website. By default, this will use the OpenAI API, but you can run a huggingface model (e.g. LLAMA) instead by typing python3 rag_server.py --model_name huggingface.
