Skip to content

dimagi/open-chat-studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15,471 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Chat Studio

Ask DeepWiki codecov

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.

Deploy

User Documentation

Developer Documentation

Contributing

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.

Quick Start Setup

Open Chat Studio uses UV and Invoke for dev automation.

Prerequisites

  • Python 3.13 (recommended)
  • Node.js >= 24.0.0
  • Docker and Docker Compose
  • Cloned repo

Installation Steps

  1. Install dependencies

    uv venv --python 3.13
    source .venv/bin/activate
    uv sync
  2. 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

    Install the pre-commit hooks

    prek install --install-hooks

    Set up database

    Start the database and redis services and run the DB migrations:

    inv up  # start the docker services
    cp .env.example .env
    ./manage.py migrate

    Build the front-end resources

    To build JavaScript and CSS files, first install npm packages:

    inv npm --install
    # or
    npm install
    npm run dev

    Note

    You should be using node >= 24.0.0. If you have nvm installed, you can run nvm use to switch to the correct version.

    To check which version you are using use node --version.

    Create a superuser

    ./manage.py createsuperuser
  3. Start the development server

    ./manage.py runserver
  4. Run Celery for background tasks

    Celery is required to handle LLM interactions. Run it using:

    inv celery

Docker-Only Development Environment

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.

Prerequisites

  • Docker and Docker Compose

Setup

  1. Create your .env file

    cp .env.example .env

    Edit .env and set at minimum SECRET_KEY. The DATABASE_URL and REDIS_URL values in .env are ignored when running via Docker Compose — those are overridden by the compose file to use the container service names.

  2. Build the images

    docker compose build
  3. 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 (the migrate service exits once complete)
    • Start the Django dev server on http://localhost:8000
    • Start a Celery worker and Celery Beat scheduler
  4. Create a superuser

    In a separate terminal:

    docker compose run --rm web python manage.py createsuperuser

Services

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)

About

A web based platform for building Chatbots backed by Large Language Models

Topics

Resources

License

Stars

Watchers

Forks

Contributors