# Talie chatbot service Architecture decisions live in [`docs/adr`](docs/adr). The first implementation milestone is documented in the [ingestion vertical-slice plan](docs/plans/001-ingestion-vertical-slice.md). ## Provisioning the datastores Both schema steps run as explicit deployment steps. The application performs no DDL at startup — not for Postgres (ADR-0009) and not for Qdrant (ADR-0001, "Collection provisioning"). ```bash docker compose up -d # Postgres, MinIO, Qdrant uv run alembic upgrade head # Postgres schema uv run python -m src.cli.qdrant_bootstrap # the `chunks` collection uv run fastapi dev src/main.py ``` Both commands are idempotent and safe to re-run. `qdrant_bootstrap` verifies an existing collection against the pinned schema and exits non-zero on a mismatch, rather than leaving a silently degraded sparse index in place. ## Local Langfuse This repo includes a root-level development Compose file for Langfuse: - [`docker-compose.langfuse.yml`](docker-compose.langfuse.yml) - [`.env.langfuse.example`](.env.langfuse.example) Start Langfuse locally: ```bash cp .env.langfuse.example .env.langfuse # edit .env.langfuse and replace CHANGE_ME values docker compose --env-file .env.langfuse -f docker-compose.langfuse.yml up -d ``` Open: ```text http://localhost:3000 ``` If the chatbot app runs on your host machine, configure it with: ```env LANGFUSE_HOST=http://localhost:3000 ``` If the chatbot app later runs inside the same Compose project/network as Langfuse, configure it with: ```env LANGFUSE_HOST=http://langfuse-web:3000 ``` A future app stack can be launched together with Langfuse using multiple Compose files: ```bash docker compose \ -f docker-compose.yml \ -f docker-compose.langfuse.yml \ --env-file .env \ --env-file .env.langfuse \ up -d ```