melissa kate
<< ocean chat

ocean-chat-simple

A FastAPI web app with several Claude-powered chat personas (default Claude friend, MKM, Wuthering Vampires) plus a beach poems page. Conversations are persisted as JSON under chat_logs/.

Requirements

Setup

# 1. Create and activate a virtualenv
python3 -m venv venv
source venv/bin/activate

# 2. Install dependencies
pip install -r requirements.txt

# 3. Create a .env file in the project root

.env should contain:

ANTHROPIC_API_KEY=your-key-here
NODE_ENV=dev

Run locally

source venv/bin/activate
uvicorn main:app --reload

The app will be available at http://127.0.0.1:8000.

Routes

PathDescription
/Claude chat (loads last 3 conversation pairs from chat_logs/claude.json)
/claudeSame as /
/mkmMKM chat persona
/vampire-heightsWuthering Vampires chat persona
/beach-poemsList of beach poems
POST /api/chatJSON chat endpoint — body: `{"message": "...", "type": "ocean\mkm\vampire\claude"}`
GET /download/{filename}Download a chat log JSON file (e.g. claude, data, mkm-data, vampire-heights)

Run in production (gunicorn)

gunicorn_start is a sample script for an Ubuntu deployment binding to a Unix socket. Adjust DIR, USER, and GROUP for your environment, then:

chmod +x gunicorn_start
./gunicorn_start

Or run gunicorn directly with uvicorn workers:

gunicorn main:app -c gunicorn_conf.py -k uvicorn.workers.UvicornWorker

Project layout