Skip to content

tapilab/nocouncil

Repository files navigation

nocouncil

Testing sandbox for a RAG system for searching City Council video transcripts.

Reads Chroma vector database from CHROMA_URL and serves with Open AI.

Running at https://nocouncil.fly.dev/

See data processing at https://github.com/tapilab/nocouncil-etl

Running locally with Docker

  1. Install Docker and make sure it is running.
  2. Clone this repo git clone https://github.com/tapilab/nocouncil.git
  3. Copy the .env file to the nocouncil folder
  4. From the nocouncil folder, run ./run-docker.sh

As you make changes, re-running ./run-docker.sh will launch the latest version

Running without Docker

To run on your local machine:

Prerequisites

  • Python version 3.9
  • pip
  • virtualenv

Installation

mkdir nocouncil-root
cd nocouncil-root
# make Python virtual environment
virtualenv --python=python3.9 venv
source venv/bin/activate
# clone repo
git clone https://github.com/tapilab/nocouncil.git
cd nocouncil
# install Python requirements. This can take a while.
pip install -r requirements.txt 

Create a file called .env in the nocouncil folder. Paste in the .env file available here This sets the URL to read the Chroma database from Box, the OpenAI key, as well as port the web server will use.

Now, you can run

./entrypoint

You should see something like:

[2025-09-29 21:03:41 -0500] [10087] [INFO] Starting gunicorn 23.0.0
[2025-09-29 21:03:41 -0500] [10087] [INFO] Listening at: http://0.0.0.0:5001 (10087)
[2025-09-29 21:03:41 -0500] [10087] [INFO] Using worker: sync
[2025-09-29 21:03:41 -0500] [10094] [INFO] Booting worker with pid: 10094

You should then see the website running locally at http://0.0.0.0:5001

Errors:

  • [Errno 48] Address already in use: Try a different port (in .env); this one's already being used.

fly.io setup

(you may need to restart your shell or add $HOME/.fly/bin to your PATH)

    1. Authenticate: flyctl auth login
    1. If using existing app, ask owner to add you as collaborator. Otherwise, you'll need to create a new Fly app:
    • flyctl apps create my-app-name
    • generate fly.toml flyctl init --name my-app-name --no-deploy
    • provision data flyctl volumes create data --size 2
    1. Set secrets: flyctl secrets import < .env
    1. Deploy: flyctl deploy

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors