Context-based UN Resolution lookup.
Searches through every existing ECOSOC resolution and shows relevant data and extracts.
- OpenAPI-compatible API using FastAPI
- Website using Streamlit
- Instant ECOSOC Resolution lookup with semantic search
- Ability to update documents with latest resolutions
- Integration with Ollama for inference from resolution extracts
- Docker Containerization
- Auto Update (coming soon)
- Install Docker Desktop and make sure Docker Compose is present.
- If you want to use your GPU, follow Ollama's instructions.
- Start the Docker Engine
- Windows/macOS - Open the app.
- Linux instructions
- Navigate to the project directory
-
cd MunHelper
-
- Start the containers in detached mode using docker-compose
-
docker-compose -f docker-compose.yml up -d
-
- API is served at
http://localhost:5000/docs
. - Frontend is served at
http://localhost:8051
.
- Before using anything, update the ChromaDB database.
- If using the Documentation WebUI:
- Visit the API Documentation at
http://localhost:5000
. - Run the
/manage/update-chromadb
endpoint.
- Visit the API Documentation at
- If using the Frontend:
- Hold on, I'm working on something.
- Otherwise, perform a GET request on the
/manage/update-chromadb
endpoint and wait for the resolutions to populate.
- If using the Documentation WebUI:
- They will now persist on local storgage.
- If you wish to delete this data, delete the
chroma-data
volume on Docker.-
docker volume ls
-
docker volume rm munhelper_chroma-data
-
Note
These methods may leave residue if you decide to uninstall. I recommend using the Docker method for a cleaner installation.
Bare Metal installation instructions
-
Clone the repository
-
git clone https://github.com/Mahasvan/Munhelper
-
-
Install the dependencies
-
pip install -r requirements.txt
-
-
Set up the ChromaDB database
- Run the server using
-
chroma run
-
Install Ollama and pull preferred model
-
ollama pull llama3
-
-
Set up environment variables (refer
app.py
) -
Change
bare_metal
variable inapp.py
to True -
Start the API
-
python app.py
-
-
Access the API at
http://localhost:5000/docs
-
Setting up the frontend
- Open another terminal window, and
cd
into thefrontend
folder - Run
streamlit run frontend.py
- Frontend is served at
http://localhost:8051
- Open another terminal window, and
Docker build images from scratch
- Follow all steps in the Docker Instructions until the last step.
- Start the containers using
docker-compose-build
instead ofdocker-compose
-
docker-compose -f docker-compose-build.yml up -d
-
- Make sure to read the Usage section.