Open Chat Studio is a platform for building, deploying, and evaluating AI-powered chat applications. It provides tools for working with various LLMs (Language Learning Models), creating chatbots, managing conversations, and integrating with different messaging platforms.
We welcome contributions to Open Chat Studio! If you're interested in contributing, please check out our contributing guidelines for more information on how to get started.
Open Chat Studio uses UV and Invoke for dev automation.
- Python 3.13 (recommended)
- Node.js >= 24.0.0
- Docker and Docker Compose
- Cloned repo
-
Install dependencies
uv venv --python 3.13 source .venv/bin/activate uv sync -
Run the automated setup
inv setup-dev-env
This will:
- Install pre-commit hooks
- Start database and Redis services
- Run database migrations
- Build frontend resources
- Create a superuser
OR
Follow these manual steps
prek install --install-hooks
Start the database and redis services and run the DB migrations:
inv up # start the docker services cp .env.example .env ./manage.py migrateTo build JavaScript and CSS files, first install npm packages:
inv npm --install # or npm install npm run devNote
You should be using node >= 24.0.0. If you have nvm installed, you can run
nvm useto switch to the correct version.To check which version you are using use
node --version../manage.py createsuperuser
-
Start the development server
./manage.py runserver
-
Run Celery for background tasks
Celery is required to handle LLM interactions. Run it using:
inv celery
As an alternative to running Django and Celery on the host, you can run the full stack inside Docker. This requires only Docker — no local Python or Node installation needed.
- Docker and Docker Compose
-
Create your
.envfilecp .env.example .env
Edit
.envand set at minimumSECRET_KEY. TheDATABASE_URLandREDIS_URLvalues in.envare ignored when running via Docker Compose — those are overridden by the compose file to use the container service names. -
Build the images
docker compose build
-
Start everything
docker compose up
On first start, Docker Compose will:
- Start PostgreSQL and wait until it is healthy
- Start Redis
- Run
python manage.py migrate(themigrateservice exits once complete) - Start the Django dev server on http://localhost:8000
- Start a Celery worker and Celery Beat scheduler
-
Create a superuser
In a separate terminal:
docker compose run --rm web python manage.py createsuperuser
| Service | Description |
|---|---|
db |
PostgreSQL with pgvector extension |
redis |
Redis (used as Celery broker and result backend) |
migrate |
Runs manage.py migrate on startup, then exits |
web |
Django dev server with auto-reload (runserver) |
celery_worker |
Celery worker for background tasks |
celery_beat |
Celery Beat scheduler (uses django_celery_beat database scheduler) |