Add eval harness (#62 P4), status frames (#96), and agentic runs (#63).
CI / test (pull_request) Successful in 11s
Unit Tests / test (pull_request) Successful in 10s

Ship the Phase 4 accuracy eval suite with a manual Gitea workflow, emit
versioned WS status frames during grounded chat, and introduce opt-in
agent infrastructure (Redis/Celery, AgentRun/Step, tools, orchestrator)
gated by ALLOW_AGENTIC_TASKS so default chat behaviour stays unchanged.
This commit is contained in:
2026-08-04 06:07:26 -05:00
parent e1e086a474
commit 9c0b648db3
46 changed files with 4669 additions and 117 deletions
+39
View File
@@ -32,9 +32,48 @@ services:
DATABASE_URL: ${COMPOSE_DATABASE_URL:-postgres://chat_backend:chat_backend@db:5432/chat_backend}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://10.0.0.128:11434}
SKIP_RAG_INIT: ${SKIP_RAG_INIT:-1}
REDIS_URL: ${REDIS_URL:-}
ALLOW_AGENTIC_TASKS: ${ALLOW_AGENTIC_TASKS:-false}
depends_on:
db:
condition: service_healthy
# Optional — only needed when REDIS_URL is set (multi-worker channel layer
# fan-out + Celery broker for agent runs, #63). Not started by default
# `docker compose up` unless the `agentic` profile is selected:
# docker compose --profile agentic up
redis:
image: redis:7-alpine
profiles: ["agentic"]
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
# Celery worker for long-running agent tasks (#63). Only useful once
# REDIS_URL/CELERY_BROKER_URL point at the `redis` service above.
worker:
build: .
profiles: ["agentic"]
command: ["uv", "run", "celery", "-A", "llm_be", "worker", "--loglevel=info"]
environment:
DJANGO_ENV: ${DJANGO_ENV:-dev}
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY:-dev-only-change-me}
DJANGO_ALLOWED_HOSTS: ${DJANGO_ALLOWED_HOSTS:-localhost,127.0.0.1,0.0.0.0,testserver}
DATABASE_URL: ${COMPOSE_DATABASE_URL:-postgres://chat_backend:chat_backend@db:5432/chat_backend}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://10.0.0.128:11434}
SKIP_RAG_INIT: "1"
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis:6379/0}
ALLOW_AGENTIC_TASKS: ${ALLOW_AGENTIC_TASKS:-true}
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
volumes:
postgres_data: