/askarjun

Primary LanguagePython

askarjun

TODOs

  • Build a simple langchain hook to read URL link contents
  • Langchain crawling of arjunrao in notebook
  • Decide between manual vs langchain crawling
  • Crawl through pages
  • Store contents in vectordb
  • Init Ollama & LLM
  • Ask questions to be answered without memory using vectordb (RAG)
  • Simple chat interface with Chainlit
  • Add short term memory
  • Figure out how to run ollama in a container
  • Containerize chainlit
  • Run ollama with chainlit
  • Add github action to build image + deploy to digital ocean
  • Deploy chatbot to "cloud"
  • Add black/isort
  • Containerize data ingest
  • Fix ollama reference in local vs container mode (ansible/terraform)
  • Deploy data ingest process
  • process to store chromadb to R2
  • load chromadb up from R2 location
  • Stream responses back instead of all together
  • Add reasoning [Agent based retrieval]
  • Add Streamlit Copilot at arjunrao.co

Running askarjun

1. Local virtualenv setup

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Ingest blogs

python src/ingest.py

3. Running chainlit

chainlit run src/chat.py

4. Container stuff

docker build -t askarjun:latest
docker-compose up

5. Pull down Ollama models

a. Local mode

ollama pull nomic-embed-text
ollama pull mistral

b. In container mode

docker exec -it askarjun-ollama-container-1  ollama pull nomic-embed-text
docker exec -it askarjun-ollama-container-1  ollama pull mistral

Models are stored in ./data/ollama which are mapped into the container as a volume (see docker-compose.yml)

6. Push chromadb to R2

python src/r2.py