Files
praxis/README.md
T
Praxis CI ea1b77535e feat(P01-01-01): create repo skeleton for v0.1 minimal voice loop
server/, client/, scenarios/, db/, scripts/, tests/, docs/ dirs match
PERSONAS.md territory. pyproject.toml declares pipecat-ai[deepgram,cartesia,piper,webrtc]
+ openai + pydantic + pyyaml + aiosqlite + httpx + websockets. .env.example
documents DEEPGRAM_API_KEY, CARTESIA_API_KEY, OLLAMA_API_KEY and the TTS
selection (PRAXIS_TTS=cartesia|piper). Verified: python -c 'import pipecat'
succeeds (pipecat-ai 1.6.0 installed).

---ci---
phase: 1
milestone: v0.1
plan: 01
task: 01-01
status: execute
persona: lead-developer
requirements:
  covered: [REQ-ORCH-01]
---/ci---
2026-08-01 12:54:56 +00:00

39 lines
1.7 KiB
Markdown

# Praxis — v0.1 Foundation
Voice-first AI apprenticeship platform. v0.1 is a **tech-validation harness** (per G-008) for the minimal viable voice loop: a single learner speaks to an AI tutor playing a Customer Service role-play scenario, hears a <600ms-latency response, receives an end-of-session coaching debrief, and has the session logged to SQLite.
## Status
Phase 1 (minimal viable voice loop) — code-complete, pending live API keys for runtime verification.
## Stack
- **Orchestration:** Pipecat (D-017) with Silero VAD + interruptibility
- **ASR:** Deepgram Nova-3 streaming (D-013)
- **LLM:** Ollama Cloud direct API (D-020) — `gemma4:cloud` (role-play) + `deepseek-v4-flash:cloud` no-think (debrief)
- **TTS:** Cartesia Sonic (primary, D-014) / Piper (self-hosted, R4 mitigation) — behind an interface
- **Client:** React + Vite + WebRTC (Pipecat client SDK, D-015)
- **State:** SQLite `praxis.db` (D-007, single hardcoded learner, no auth)
## Layout
```
server/ Pipecat pipeline, services (TTS/LLM/Guardrail interfaces), scenario runtime, adapters
client/ React + Vite + WebRTC learner surface
scenarios/ YAML scenario definitions (D-018)
db/ SQLite schema, migrations, async store
scripts/ Latency probes (R1-R4), e2e smoke
tests/ Unit + e2e
docs/ Latency report, debrief templates
```
## Quickstart
1. Copy `.env.example``.env`, fill in `DEEPGRAM_API_KEY`, `CARTESIA_API_KEY`, `OLLAMA_API_KEY`.
2. Install server deps: `pip install -e ".[dev]"`
3. Install client deps: `cd client && npm install`
4. Run probes: `python scripts/probe_deepgram.py` (etc.)
5. Run server: `python -m server`
6. Run client: `cd client && npm run dev`
See `docs/latency-report.md` for the R1-R4 spike status and TTS decision.